Die Anwendung, an der ich gerade arbeite, hat einen Session-Timeout-Wert. Wenn der Benutzer nicht länger als diesen Wert interagiert hat, wird er aufgefordert, sich einzuloggen.HTTP 401 - Was ist ein geeigneter WWW-Authenticate-Header-Wert?
Alle 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 von diesen RPC-Aufrufen sind JSON- oder Raw-JavaScript, das ausgewertet wird (do not frage: |).
Ich habe vorgeschlagen, dass ein 401 ist besser, da unser JSON-Parser eine HTML-Anmeldeseite verbrauchen nicht versuchen, .. :)
Wenn reading the spec ich jedoch, dass das Feld WWW-Authenticate
bemerkt muss auch gesendet werden.
Was ist ein guter Wert für dieses Feld? Wird Application Login
ausreichen?
Dank Kumpel, ich bin jetzt eine 403 anstatt verwenden, da es nicht eine Umleitung ist und es enthält buchstäblich das Login-Formular anstelle der Originalseite. Es entspricht auch besser der W3-Spezifikation. Danke für die Informationen jedoch. –
Finden Sie diese Antwort darüber, wie Sie HTTP 401 weiterhin verwenden können: http://stackoverflow.com/questions/928874/how-doi-i-keep-firefox-from-prompting-for-username-password-with-http-basic -auth/19102200 # 19102200 – lanoxx
Ja, leg einfach alles in den WWW-Authenticate-Header. Eine andere Antwort in ähnlicher Weise ist http://stackoverflow.com/a/1088127/689161 Oder einfach die Spezifikation zu verletzen und nicht die Header senden (zumindest ein paar Websites tun dies); 401 ist immer noch passender als 403. – gengkev