Mechanizm resetownia hasła¶
Mechanizm resetowania hasła¶
W wersji neosa 5.4 wprowadzono mechanizm resetowania hasła w kliencie web.
Gdy użytkownik zapomni hasła, którym loguje się do klienta web, w ekranie może kliknąć w link "Zapomniałeś hasła"?, który następnie przekieruje go do strony, na której uzupełnia on swój login i następnie klika "Resetuj hasło".
Następnie, na mail przypięty do wskazanego konta, zostaje wysłany link, po wejściu do którego można ustalić nowe hasło, a następnie się, z jego pomocą, zalogować.
Po wpisaniu nowego hasła dwa razy oraz kliknięciu "Zmień hasło", użytkownik jest przekierowywany do strony logowania i może zalogować się za pomocą nowego hasła.
Dla developerów¶
Od strony technologicznej, gdy użytkownik klika w przycisk "Resetuj hasło", wykonywany jest ciąg operacji, na część z których, za pomocą konfiguracji, developer może mieć wpływ.
Najpierw wykonywana jest procedura, która, na podstawie wpisanego w oknie loginu, zwraca mail, na który następnie zostanie wysłany link. Domyślną procedurą wykonującą tę operację jest SYS_GET_USEREMAIL, jednak, tak jak w przypadku procedury logowania, developer ma możliwość użycia swojej, customowej procedury, konfigurowalnej per profil. Aby ustawić swoją procedurę zwracającą maile dla loginu, w pliku .smd, korzystamy z klucza:
[Profile:xxx]
UserEmailProcedure=nazwa customowej procedury
Następnie, dla danego użytkownika generowany jest token resetowania hasła. Taki token jest domyślnie ważny przez 24 godziny, jednak, tak jak i w przypadku procedury, czas ważności tego tokenu jest konfigurowalna per profil, w pliku .smd.
[Profile:xxx]
ResetTokenExpireTime=wartość, w minutach
Ten token jest trzymany w strukturze, która składa się z UUID tokenu, informacji o użytkowniku, statusie tokenu (nowy, przedawniony lub wykorzystany) oraz tym, kiedy token został stworzony, do kiedy jest ważny oraz kiedy został wykorzystany.
Tokeny, w formie tej struktury, przetrzymywane są w bazie danych, w tabeli SYS_RESETTOKENS.
Po tym, jak użytkownik wejdzie w link z maila, wpisze nowe hasło dwa razy i kliknie "Zmień hasło", wywoływana jest procedura, odpowiedzialna za reset hasła. Także i w tym przypadku jest ona konfigurowalna.
[Profile:xxx]
ResetPasswordProcedure=nazwa procedury
Procedura ta, na wejściu dostaje id tokenu oraz nowe hasło, po zahashowaniu. Następnie na podstawie tokenu pobiera login użytkownika oraz, na jego podstawie, zmienia hasło na nowe.
Mechanizm ten wspiera również wielojęzyczność i każde okno, do czynienia z którym ma użytkownik końcowy, jak i wysyłany do niego mail, są wyświetlane w odpowiednim języku (Domyślnie dostępny jest jedynie angielski oraz polski).
Aby można było korzystać z tego mechanizmu, należy, poza odpowiednią wersją neosa, wgrać migrację bazodanową, która zawiera potrzebne procedury oraz struktury, jak i upewnić się, że każdy użytkownik, który korzysta z klienta webowego, ma przypisany do swojego loginu email.