Zdaję sobie sprawę, że to już lata, ale pomyślałem, że mogę rozwinąć odpowiedź Conora i dodać trochę więcej do dyskusji.
Czy ktoś może mi podać krok po kroku opis działania uwierzytelniania opartego na plikach cookie? Nigdy nie robiłem niczego, co dotyczyło zarówno uwierzytelnienia, jak i plików cookie. Co musi zrobić przeglądarka? Co serwer musi zrobić? W jakiej kolejności? Jak dbamy o bezpieczeństwo?
Krok 1: Klient> Rejestracja
Przed wszystkim innym użytkownik musi się zarejestrować. Klient wysyła do serwera żądanie HTTP zawierające swoją nazwę użytkownika i hasło.
Krok 2: Serwer> Obsługa rejestracji
Serwer otrzymuje to żądanie i szyfruje hasło przed zapisaniem nazwy użytkownika i hasła w bazie danych. W ten sposób, jeśli ktoś uzyska dostęp do Twojej bazy danych, nie zobaczy rzeczywistych haseł użytkowników.
Krok 3: Klient> Login użytkownika
Teraz twój użytkownik się loguje. Podaje swoją nazwę użytkownika / hasło i ponownie jest on wysyłany do serwera jako żądanie HTTP.
Krok 4: Serwer> Sprawdzanie poprawności logowania
Serwer wyszukuje nazwę użytkownika w bazie danych, szyfruje dostarczone hasło logowania i porównuje je z wcześniej zakodowanym hasłem w bazie danych. Jeśli się nie wyrejestruje, możemy odmówić im dostępu, wysyłając kod stanu 401 i kończąc żądanie .
Krok 5: Serwer> Generowanie tokena dostępu
Jeśli wszystko się sprawdzi, utworzymy token dostępu, który jednoznacznie identyfikuje sesję użytkownika. Wciąż na serwerze robimy dwie rzeczy z tokenem dostępu:
- Zapisz go w bazie danych powiązanej z tym użytkownikiem
- Dołącz go do pliku cookie odpowiedzi, aby zwrócić klientowi. Pamiętaj, aby ustawić datę / godzinę wygaśnięcia, aby ograniczyć sesję użytkownika
Odtąd pliki cookie będą dołączane do każdego żądania (i odpowiedzi) między klientem a serwerem.
Krok 6: Klient> Składanie żądań strony
Po stronie klienta jesteśmy teraz zalogowani. Za każdym razem, gdy klient wysyła żądanie strony wymagającej autoryzacji (tzn. Musi się zalogować), serwer uzyskuje token dostępu z pliku cookie i sprawdza go względem tego w bazie danych powiązanej z tym użytkownikiem. Jeśli się sprawdzi, dostęp zostanie przyznany.
To powinno zacząć. Pamiętaj, aby usunąć pliki cookie po wylogowaniu!