Java EE, co dalej po potwierdzeniu poprawności hasła?

0

Witajcie,

Jeśli sprawdzę czy użytkownik podał dobre hasło to co dalej? Mam sesje z ciasteczka zapisać do rekordu danego użytkownika? Czy jakieś ciastko określające czy ktoś jest zalogowany, albo id zalogowanego, choć boję się, że takie coś mogło by być łatwo zhackowane? Jeśli ciasteczko by wygasło, a user by w db miał wpisane id sesji to jak zrobić automatyczne czyszczenie tego? Z góry: hasła haszuje BCryptem, żeby nie było. Planuje to zrobić tak, że z back-endem komunikował by się AngularJS przez RESTowe API.

0

Wydaje mi się, że trochę mieszasz uwierzytelnianie sesją a tokenem.

Generalnie masz dwie opcje:

  1. Uwierzytelnianie sesji - zazwyczaj robione jest out-of-the-box, tzn. serwer pamięta, które sesje są uwierzytelnione a które nie.
  2. Uwierzytelnianie tokenem - w momencie uwierzytelniania użytkownikowi nadaje się unikalny token, zapisuje się go w cookie (klient) i po stronie DB (serwer). Token można też przekazywać np. w parametrze. W bazie danych trzymasz id tokenu, id posiadacza (w teorii posiadaczem tokenu może być sesja, ale zazwyczaj jest to użytkownik), datę wygaśnięcia itp.

Zaletą rozwiązania #1 jest fakt, że nie trzeba go implementować, większość serwerów aplikacji załatwi to za Ciebie. Wadą jest oczywiście problem z pracą na wielu aplikacjach, zwłaszcza jeśli klient ma się odwoływać do webservice'ów (zakładam, że skoro Angular to takie zamierzenie).
Tokeny ostatnio stają się coraz bardziej popularniejsze, właśnie ze względu na to, że kilka aplikacji podpiętych do jednej bazy danych z danymi uwierzytelniającymi mogą nie pytać użytkownika o zalogowanie każde oddzielnie, tylko raz.

Wszystko zależy od Twojego widzimisię, musisz poczytać jak to wygląda w AngularJS.

1 użytkowników online, w tym zalogowanych: 0, gości: 1