JSON Web Tokens w Node.js (Express.js) | overment
Вставка
- Опубліковано 19 жов 2024
- JSON Web Tokens to technika umożliwiająca autoryzację użytkownika (klienta) na jednym lub wielu serwerach. Z tego powodu odgrywa ogromną rolę w aplikacjach typu SPA oraz architekturze wykorzystującej mikroserwisy i/lub serverless.
W tym filmie dowiesz się:
👉 Jak skonfigurować aplikację express.js ze wsparciem ES6 Modules?
👉 Jaką rolę odgrywa plik .env i jak z nim pracować?
👉 Jaką rolę odgrywają tokeny JWT w SPA / Mikroserwisach / Serverless
👉 Jak wygenerować bezpieczny SECRET_TOKEN dla JWT?
👉 Jak utworzyć tokeny JWT oraz refresh token?
👉 Jak stworzyć middleware autoryzujący użytkownika
👉 Jak usprawnić sobie pracę z API w VSC?
👉 Jak bezpiecznie przechowywać tokeny w cookies httpOnly
Kod źródłowy z omawianego przykładu:
github.com/ice...
E-book Sekuraka o JWT:
sekurak.pl/dar...
E-book Auth0 o JWT:
auth0.com/reso...
Chcesz zawsze pozostać na bieżąco z programowaniem?
📩 Zapisz się na newsletter:
overment.com/n...
🔔 Subskrybuj mój kanał - www.youtube.co...
🎓 Więcej moich kursów znajdziesz na:
overment.com/e... (reflink)
Tworząc #overment (np. kursy i tutoriale) najwyższą wartością jest dla mnie Twój czas. Moja strategia polega na tym, aby dotrzeć do źródła tematu i świadomie odrzucić niepotrzebne elementy. W ten sposób w prostych słowach wyjaśniam Ci to, co jest naprawdę istotne.
Znajdziesz u mnie filmy dla front-end, back-end i full-stack developerów. Główne tematy moich filmów to m.in: #JavaScript, Node.js (Express.js / Nest.js) ale również HTML, CSS oraz bazy danych (mySQL i mongoDB). Dodatkowo zawsze dbam o to, aby treści na filmach były maksymalnie aktualne.
Właśnie tego potrzebowałem. Super, że kontynuujesz serie node.js. Dzięki 😃
super materiał, fajnie byłoby jeszcze zobaczyć obsługę jwt po stronie frontu w reakcie
Będzie filmik na temat autoryzacji użytkownika w SPA (React, Vue lub Angular) przy użyciu access tokenów i refresh tokenów? Bardzo prosiłbym o tego typu film w najbliższym czasie.
dołączam się do pytania
Tak, będzie dla Vue lub React. Dla Angulara z całą pewnością nie, jestem w tej chwili mega daleko od tego ekosystemu. Rozwijam projekty w Vue / React i nie chcę nagrywać filmów na tematy o których mam średnie pojęcie (sporo projektów rozwijałem w AngularJS ale minęło trochę czasu a sam framework mocno się zmienił)
@TenDan tak na dobrą sprawę możesz użyć tego co masz w odcinku jeśli zapiszesz oba tokeny do ciastka to po wysłaniu zapytania do ścieżki /login już będziesz zalogowany i kolejne zapytania bedą zawierać w ciastku token więc nic nie trzeba na froncie dodawać. Jedyne co to warto żeby endpoint /login zwrócił informację że użytkownik jest zalogowany i jakieś dane uzytkownika typu username, avatar itd żeby można było zmienić stan aplikacji
Token też można przechowywać w bazie danych wtedy można bardzo łatwo zrobić wymuszenie wylogowania użytkownika i pokazywać uzytkownikom aktywne sesje. Co do przechowywania to imho http only cookie dla dwóch tokenów to najlepsza opcja wtedy nie trzeba ich zwracać do użytkownika. Jedną rzecz bym tylko zmienił mianowicie żeby endpoint refresh przyjmował też token który chcemy odświeżyć, bo w twoim przykładzie załóżmy że ktoś refresh token będzie trzymać w localstorage - wystarczy tylko przejąć ten token żeby uzyskać dostęp do konta. Film bardzo dobrze wszystko wyjaśnia, dobra robota :)
Good point z tym refresh tokenem :)
Dziękuje :)
Fantastyczny film, czekam na kolejne części!
Dziękuję Bartek 🙂
No trafiłeś z filmikiem idealnie :D
A proszę bardzo! 😁
Nie lepiej ustawić type: module w package.json niż instalować esm ?
Faktycznie lepiej 🙂Totalnie o tym nie pomyślałem, dzięki!
Access Token i Refresh token? Pytanie tylko po co skoro można to wszystko na jednym zrobić?
A kiedy odświeżać Access Token? Jak sprawdzać, że się kończy jego ważność?
Jak można uzyskać takie autouzupełnianie poleceń w konsoli oraz kolorowanie składni?
Autouzupenianie to TabNine
A kolorowe klamry to BracketPair Colorizer - zakładam ze o to może Co chodzić :)
Cześć. Kolejny świetny materiał. Jednak napotkałem pewien ciekawy problem z rest extension. Jeśli umieści się wartość nagłówka w cudzysłowiu to nie jest to poprawnie wysłany post i nie można go sparsować przez co miałem przez jakiś czas walkę z undefined -> gist.github.com/MarcinGladkowski/678c3e6119f9d31ecd507408df0e4af9
1:04 Jaki skrót klawiszowy do tworzenia plików ten sposób?
Jest to rozszerzenie advanced new file.
Skrót CMD + Option + N
lub na Windowsie zakładam ze jest to CTRL ALT N