Aplikacja, nad którą obecnie pracuję, ma wartość limitu czasu sesji. Jeśli użytkownik nie wchodził w interakcję dłużej niż ta wartość, podczas następnej strony, którą spróbuje załadować, zostanie poproszony o zalogowanie.
Wszystkie żądania są kierowane przez ten mechanizm, który obejmuje wywołania AJAX. Pierwotnie wysyłaliśmy nagłówek 200 ze stroną logowania, co wprowadza pewne problemy z AJAX, ponieważ kod jest uruchamiany po wysłaniu odpowiedzi 200, a większość danych odsyłanych z tych wywołań RPC to JSON lub surowy JavaScript, który jest oceniany (nie zapytaj: |).
Zasugerowałem, że 401 jest lepszy, ponieważ nasz parser JSON nie będzie próbował zużywać strony logowania HTML .. :)
Po przeczytaniu specyfikacji , jednak zauważyłem, że WWW-Authenticate
pole musi być również wysłana.
Jaka jest dobra wartość tego pola? Czy Application Login
wystarczy?
źródło
Nie, musisz określić metodę uwierzytelniania, która ma być używana (zwykle „Podstawowa”) i dziedzinę uwierzytelniania. Przykładowe żądanie i odpowiedź można znaleźć pod adresem http://en.wikipedia.org/wiki/Basic_access_authentication .
Możesz również przeczytać RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication .
źródło
Po przekroczeniu limitu czasu sesji użytkownika odsyłam kod stanu HTTP 204. Zwróć uwagę, że stan HTTP 204 nie zawiera treści. Po stronie klienta robię to:
Oto funkcja Reload ():
źródło