Po zaimplementowaniu rejestracji i edycji danych użytkownika przyszedł czas na przygotowanie się do kolejnej funkcjonalności, a więc
stworzenia pełnego modułu logowania wraz z obsługą ról. Oczywiście przygotowanie obejmie również proces wylogowania.
Nauczymy Cię również, jak zaprogramować proces resetowania hasła z wykorzystaniem potwierdzenia mailowego.
Formularz logowania będzie zawierał dwa komponenty tekstowe (input text oraz input password)
umożliwiające wprowadzenie adresu email oraz hasła. Do wysłania formularza posłuży nam przycisk
Sign In.
Po jego naciśnięciu dane zostaną odpowiednio zwalidowane po stronie interfejsu użytkownika oraz po stronie serwera.
Akcja wylogowania rozpocznie się od wprowadzenia przycisku
Logout i zakończy się faktycznym wylogowaniem z serwera.
Pozostanie nam przygotowanie procesu resetowania hasła, który będzie wymagał konta pocztowego.
Na adres email zostanie wysłany link potwierdzający chęć zmiany hasła.
Cele naszej implementacji:
- Przygotowanie formularza html do logowania wraz z mechanizmem logowania Spring Security
- Dodanie funkcjonalności wylogowania z użyciem Spring Security
- Dodanie podstawowej obsługi ról użytkownika z użyciem Spring Security
- Przygotowanie formularza html z prośbą o reset hasła
- Wykonanie procesu resetowania hasła wraz z potwierdzeniem wysyłanym mailem
- Przygotowanie odpowiedniej konfiguracji do wysyłania maili w pliku konfiguracyjnym Spring Boot
- Wyświetlenie odpowiednich komunikatów zgodnych z odpowiedziami z serwera
Starter
Najczęściej proces logowania jest rozpoczynany przez użytkownika w przeglądarce, następnie wykonywany na serwerze
i ostatecznie wraca z powrotem do przeglądarki użytkownika.
Na serwerze część zadań może być wykonana przez nas bądź przez framework
(tak się dzieje podczas procesu logowania gdzie część pracy wykonuje za nas Spring).
W przypadku procesu resetowania hasła poza wspomnianymi zadaniami dodatkowo wykonywana
jest jeszcze operacja wysyłania maila z linkiem resetującym.
Do obsługi ról użytkownika użyjemy – po stronie serwera - wbudownego mechanizmu Springa:
SecurityConfig wraz z
GrantedAuthorities ...
...