Die Anwendung, an der ich gerade arbeite, hat einen Sitzungszeitlimitwert. Wenn der Benutzer länger als dieser Wert nicht interagiert hat, wird er auf der nächsten Seite, die er zu laden versucht, aufgefordert, sich anzumelden.
Alle gestellten Anforderungen werden über diesen Mechanismus weitergeleitet, der AJAX-Aufrufe enthält. Ursprünglich haben wir einen 200-Header mit der Anmeldeseite gesendet, was einige Probleme mit AJAX verursacht, da Code ausgeführt wird, wenn eine 200-Antwort gesendet wird, und die meisten Daten, die von diesen RPC-Aufrufen zurückgesendet werden, JSON oder unformatiertes JavaScript sind, das ausgewertet wird (nicht fragen: |).
Ich habe vorgeschlagen, dass ein 401 besser ist, da unser JSON-Parser nicht versucht, eine HTML-Anmeldeseite zu verwenden. :)
Beim Lesen der Spezifikation bemerkte ich jedoch, dass dieWWW-Authenticate
Feld auch gesendet werden muss.
Was ist ein guter Wert für dieses Feld? Wird Application Login
ausreichen?
quelle
Nein, Sie müssen die zu verwendende Authentifizierungsmethode (normalerweise "Basic") und den Authentifizierungsbereich angeben. Eine Beispielanforderung und -antwort finden Sie unter http://en.wikipedia.org/wiki/Basic_access_authentication .
Möglicherweise möchten Sie auch RFC 2617 - HTTP-Authentifizierung: Standard- und Digest-Zugriffsauthentifizierung lesen .
quelle
Wenn die Benutzersitzung abläuft, sende ich einen HTTP 204-Statuscode zurück. Beachten Sie, dass der HTTP 204-Status keinen Inhalt enthält. Auf der Client-Seite mache ich das:
Hier ist die Funktion Reload ():
quelle