Ponowne uwierzytelnianie
Gdy uwierzytelniona sesja wygaśnie, użytkownik musi mieć możliwość kontynuowania zadania bez utraty wprowadzonych danych. Sesja kończy się, praca w toku — nie.
Czego wymaga kryterium
Jeśli uwierzytelniona sesja wygaśnie w trakcie zadania, użytkownik musi mieć możliwość ponownego uwierzytelnienia i wznowienia działania bez utraty wprowadzonych danych. Pola formularza pozostają wypełnione, koszyk zakupowy pozostaje pełny, niedokończony komentarz pozostaje wersją roboczą.
Jak spełnić kryterium
- Należy zapisywać stan formularza na serwerze (lub w lokalnym magazynie danych z monitem o odtworzenie) przy każdej istotnej zmianie — nie tylko przy przesyłaniu.
- Gdy sesja wygaśnie, należy zwrócić kod 401 do wywołania API, ale pozostawić użytkownika na tej samej stronie; zamiast pełnego przekierowania należy wyświetlić formularz logowania w obrębie strony.
- Po pomyślnym ponownym uwierzytelnieniu należy powtórzyć pierwotną akcję z pierwotnym ładunkiem. Użytkownik nie powinien odczuć żadnej przerwy.
- W przypadku wieloetapowych przepływów postęp należy śledzić po stronie serwera powiązanego z kontem użytkownika, a nie z tokenem sesji.
Typowe błędy
- Przepływy transferu bankowego, gdzie wygaśnięcie sesji przenosi użytkownika na ekran logowania, a częściowo wypełniony formularz przelewu znika.
- Systemy komentarzy, w których długa odpowiedź jest tracona przy przekierowaniu po ponownym uwierzytelnieniu — powszechne na Reddit, stronach informacyjnych i forach.
- Wielostronicowe formularze rządowe, które tracą wszystkie wprowadzone dane po wygaśnięciu sesji i wymagają rozpoczęcia od strony pierwszej.
- Przepływy zakupowe, w których koszyk przeżywa, ale dane dotyczące wysyłki i płatności muszą być wprowadzone ponownie.
Dlaczego to ma znaczenie
Kryterium dotyczy poszanowania wysiłku użytkownika. Ponowne wpisanie długiego formularza jest uciążliwe dla każdego; dla osoby korzystającej z czytnika ekranu, sterowania głosem lub przełącznika może oznaczać kolejne dwadzieścia do czterdziestu minut pracy — i jest często powodem rezygnacji. Większość komercyjnych serwisów nie spełnia jeszcze tego kryterium, ale aplikacje biurowe w chmurze (Google Docs, Office 365, nowoczesna bankowość) rozwiązały ten problem dzięki automatycznemu zapisywaniu i uwierzytelnianiu w tle.