Sie könnten diesen Parameter (die Seite, auf der sie sich befanden) als Parameter für Ihre return_to
. Wie bereits in die Spezifikation :
Hinweis: Die return_to URL KANN als Mechanismus verwendet werden, mit dem die Relying Party der Authentifizierungsantwort einen Kontext über die Authentifizierungsanfrage beifügen kann. Dieses Dokument definiert keinen Mechanismus, mit dem der RP sicherstellen kann, dass Abfrageparameter nicht von außen verändert werden; ein solcher Mechanismus kann vom RP selbst definiert werden.
Zum Beispiel:
def sendOpenIDCheck(...):
# after getting an AuthRequest from Consumer.begin
return_to = oidutil.appendArgs(return_to,
{'destination_url': that_place_they_tried_to_go})
return redirect(auth_request.redirectURL, realm, return_to))
def handleReturnTo(request):
# after doing Consumer.complete and receiving a SuccessResponse:
return redirect(request.GET['destination_url'])
Wenn es einen anderen Status gibt, den Sie verfolgen müssen (wie POST-Daten), oder wenn Sie eine außerordentlich lange URL haben, die Sie nicht als Abfrageparameter einfügen können, oder wenn Sie die destination_url
Sie speichern diese Informationen serverseitig, senden den Schlüssel als Abfrageparameter anstelle einer URL und sehen ihn nach, wenn der Benutzer zurückkommt.
Das unterscheidet sich nicht sehr von der Speicherung in der Sitzung, es sei denn, der Benutzer hat mehrere gleichzeitige Registerkarten in einer Sitzung, die in diese hineinlaufen, und dann hilft es, sie in der Abfrage zu haben.