Wpis z mikrobloga

Ktoś podaję login i pass ty sprawdzasz i jak jest poprawny zwracasz podpisany token. Późnej sprawdzasz podpis i daty w tokenie i jak jest poprawny to w tokenie masz np login user i na bazie tego ustawiasz kontext usera w security
@krasnoludkolo: Klient uderzając na Twój endpoint (np. na endpoint stricte przeznaczony do uwierzytelniania) dostarcza login i hasło (oczywiście komunikacja musi być szyfrowana). Ty po stronie backendu sprawdzasz czy wszystko jest cacy: jeżeli tak, to generujesz token JWT, w którym zapisujesz informacje, które później będą Ci potrzebne przy przetwarzaniu kolejnych requestów tego klienta. Oczywiście hasła w tokenie nie umieszczasz (bo nie musisz), a poprawność/ważność tokena sprawdzasz weryfikując jego podpis i datę.
@krasnoludkolo: JWT to jest tylko sposób transportu tokena, a nie sposób autoryzacji.

1. Wysyłasz normalnie username/password do serwer przez JSON body
2. serwer generuje token JWT, w którym zawiera np {username:"", user_id:""}, ale *nie hasło*. Całość odsyła do klienta
3. klient w payload widzi informacje o userze (username i id) ale nie musi z nimi nic robić - korzysta jak z każdego innego tokena, przekazując go po prostu do serwera w
Czy sekretne słowo do podpisu musi być zawsze to samo? Czy coś się stanie jak po restarcie serwera będzie nowe? Klienci będą musieli się chyba tylko jeszcze raz zalogować, generując sobie nowy token? Nie będzie trzeba wtedy nigdzie trzymać tokenów


@krasnoludkolo: to zależy od kilku czynników m.in jak długo będzie żył taki token (dobrą praktyką jest to aby jak najkrócej, ale życie swoje, a teoria swoje), czy zmienisz "secretKey" w swojej
@krasnoludkolo: jesali chodzi o bepieczenstwo to lepiej podpisac kluczem asymetrycznym, jak sie upierasz przy symetrycznym to mozesz uzyc czego kolwiek, byle mial odpowiednia dlugosc.
Na pewno potrzebujesz jwt?