JWT (JSON Web Token) là gì? Hướng dẫn tạo JWT Auth trong NodeJS

  Рет қаралды 50,713

HoleTex

HoleTex

Күн бұрын

Пікірлер: 121
@huydang2983
@huydang2983 2 жыл бұрын
Cảm ơn anh nhiều ạ, e đang bị rối cách xử lí của FE và BE phần authorization, xem xong bài giảng của anh thì em clear được nhiều rồi ❤
@hoangnamnguyen5459
@hoangnamnguyen5459 3 жыл бұрын
Cảm ơn anh nhiều, xem qua vài video cộng với đọc một vài bài viết mà vẫn chưa thật sự hiểu rõ, xem video của anh xong thì em đã hiểu rồi ạ ❤❤❤❤
@luantran7118
@luantran7118 2 жыл бұрын
em thực sự khóc cạn nước mắt khi ko chịu xem hết video của a sớm, hôm trước e có thấy video của a mà e chỉ lướt qua, xong e được giao task làm liên quan JWT này, e loay hoay đủ kiểu lỗi refreshToken, lỗi verifyToken, lỗi Logout vẫn còn token..... Giờ thì e hiểu hơn nhiều rồi. Phần của a là phần BE, còn phần FE gửi, check cũng còn nhiều cái phải làm lắm. Cảm ơn a vì video hữu ích. 2h22 sáng cay lè mắt, xem từng tí 1 video của a cho thông luồng. hihi
@nam2222nam
@nam2222nam Жыл бұрын
FE thì dùng useEffect của react mà check thôi nhỉ
@anhtuanle4991
@anhtuanle4991 Жыл бұрын
Uầy 38p thui mà quá nhiều thứ cám ơn a :>
@phuctrung
@phuctrung 2 жыл бұрын
bài giảng rất chi tiết, dễ hiểu và có tâm. Cảm ơn bạn rất nhiều.
@angquangtien8107
@angquangtien8107 2 жыл бұрын
Dễ hiểu nhưng lại rất hữu ích, nâng cao nhiều kiến thức khó kiếm được trên mạng
@croky9984
@croky9984 3 жыл бұрын
Anh truyền đạt rất dễ hiểu. Cảm ơn anh. 🤗🤗🤗
@sonle23-j2d
@sonle23-j2d 3 жыл бұрын
cảm ơn anh, chúc anh có nhiều sức khoẻ và thành công trong công việc !!
@huyto2199
@huyto2199 3 жыл бұрын
Hay quá anh ơi, a ra video đúng lúc em đang tìm hiểu JWT luôn á, Cảm ơn anh rất nhiều
@arielnguyen9142
@arielnguyen9142 3 жыл бұрын
Hóng đc xem thêm nhiều video bổ ích của a nữa ạ ^_^
@trantronghuy156
@trantronghuy156 Жыл бұрын
bài giảng rất rõ ràng. với chỉ e làm sao Server API này làm sao đưa nó lên hostinger vậy a
@cennycoding
@cennycoding Жыл бұрын
cám ơn anh, rất mong anh làm video phần 2 của chủ đề này jwt author handle bên phía client, và gửi request đi attach token trong cookie chứ không phải bearer
@huuthinnguyen2536
@huuthinnguyen2536 3 жыл бұрын
video khá hay và bổ ích, cảm ơn a nhiều.
@mancao9189
@mancao9189 2 жыл бұрын
Hay và dễ hiểu quá anh, mong anh làm về chủ đề WebSockets với ạ
@xuanthuc189
@xuanthuc189 3 жыл бұрын
Mình mới học nhưng chưa hiểu lắm mong holetex giải thích hộ đoạn cuối của video: Mình login cũng tạo ra accessToken mới và refresh cũng tạo accessToken mới vậy vì sao phải làm refresh để làm gì? Nó được ứng dụng như thế nào trong thực tế ?
@igdev6095
@igdev6095 3 жыл бұрын
Theo mình thấy để tránh user nó gọi request liên tục ấy b, còn tiếp đó thì mình ko rõ :')
@dungngothihong3831
@dungngothihong3831 Жыл бұрын
vi access token het hieu luc sau 1 khoang thoi gian nen phai refresh lai de lay access token moi
@phamduong3540
@phamduong3540 2 жыл бұрын
anh giảng hay quá anh ơi
@LuanLe-wt6ul
@LuanLe-wt6ul 3 жыл бұрын
Video được đầu tư và rất bổ ích. Nhưng mình nghĩ nó sẽ tốt hơn nữa nếu bác dùng 1 chút body language như là cử chỉ 2 tay thay vì mỗi biểu cảm khuôn mặt để diễn giải lời nói ở những phần quay cận người (Intro, khái niệm...)
@holetex
@holetex 3 жыл бұрын
Cảm ơn góp ý của bạn rất nhiều!
@phapnguyen155
@phapnguyen155 3 жыл бұрын
hóng anh ra thêm nhìu video nữa
@VănThànhHoàng-s1c
@VănThànhHoàng-s1c Жыл бұрын
cảm ơn anh
@longphinguyen5436
@longphinguyen5436 3 жыл бұрын
hay quá. ra thêm nhiều video nha
@loixuan2154
@loixuan2154 2 жыл бұрын
Anh dạy hay. Mong anh ra nhiều video nữa.
@hoangucollection6181
@hoangucollection6181 2 жыл бұрын
truyền nhân của Web Dev Simplified kk
@lenhac9040
@lenhac9040 2 жыл бұрын
Hay quá
@truonghoang2408-e2k
@truonghoang2408-e2k 3 жыл бұрын
rất hay ạ
@truonghoang2408-e2k
@truonghoang2408-e2k 3 жыл бұрын
anh oi cho em hỏi là register thì có cần tạo accessToken không ạ hay chỉ cần với login thôi ạ
@ThaiHaOfficial
@ThaiHaOfficial 3 жыл бұрын
em cảm ơn anh ạ!
@quangloi5652
@quangloi5652 5 ай бұрын
😍😍
@TungTobinMHoang
@TungTobinMHoang 3 жыл бұрын
hay quá a ơi
@nguyencaotai412
@nguyencaotai412 3 жыл бұрын
hay đó bác
@SangNguyen-ty6of
@SangNguyen-ty6of 2 жыл бұрын
Làm series về backend đi a, video hay quá a
@nguyenngochai0z
@nguyenngochai0z 3 жыл бұрын
hay anh oi ra them nhieu video nua di a
@nguyencaotai412
@nguyencaotai412 3 жыл бұрын
hóng video làm streaming với react native bác
@manurtan9957
@manurtan9957 2 жыл бұрын
Goood job , Thanks a
@MsHaTrang
@MsHaTrang 3 жыл бұрын
Bạn ơi, cho mình hỏi: thực tế thì trình duyệt nó tự request để gia hạn hay thế nào nhỉ? Giá như video của bạn nói thêm thực tế người ta lưu cái gì lên database nữa thì tốt
@holetex
@holetex 3 жыл бұрын
Trình duyệt ko tự request được bạn. Nó sẽ do phần frontend thực hiện. Vd như frontend bạn viết bằng Reactjs thì sẽ gọi refreshToken api trong reactjs
@MsHaTrang
@MsHaTrang 3 жыл бұрын
@@holetex cảm ơn bạn
@KHANGNGUYENDUY-bx1cq
@KHANGNGUYENDUY-bx1cq 3 жыл бұрын
@@holetex cho em hỏi làm sao mình biết được accessToken sắp hết hạn để mình có thể gọi api refreshToken để trả về cho client accessToken mới anh nhỉ ?
@holetex
@holetex 3 жыл бұрын
Em có thể tham khảo bài viết này, mình có thể sử dụng axios interceptors em nhé stackoverflow.com/questions/54531731/how-to-refresh-jwt-tokens-in-react-js-application
@KHANGNGUYENDUY-bx1cq
@KHANGNGUYENDUY-bx1cq 3 жыл бұрын
@@holetex em hiểu rồi, cảm ơn anh nhé !
@tainguyen-q4j
@tainguyen-q4j 11 ай бұрын
sao viết hàm middlerware ở dưới route mà nó không lỗi nhỉ
@ThanhHuynh-bb6to
@ThanhHuynh-bb6to 3 жыл бұрын
a làm về reactjs qua dự án thực tế đi ạ
@hoangnguyenbui3491
@hoangnguyenbui3491 2 жыл бұрын
Anh làm seri về nodeJS đi anh.~
@leanhducvt
@leanhducvt 3 жыл бұрын
Like cho bạn
@HuyNguyen-zp8ju
@HuyNguyen-zp8ju 3 жыл бұрын
tại sao phải truyển token qua headers vậy anh mà không phải là một req.body. Ví dụ trong trường hợp của em, user sẽ được gửi một token khi login và lưu nó trên redux store. Vậy khi cần dispatch một action nào đó em có thể dùng getState để lấy token và truyền trực tiếp thông qua api axios không ạ
@nnamvlogs5656
@nnamvlogs5656 9 ай бұрын
vì nó theo chuẩn http bn à
@voxuanhoa1166
@voxuanhoa1166 Жыл бұрын
0:50 em thắc mắc jwt được dùng cho authorization, vậy authentication dùng với gì ạ, em tưởng nó dùng cho cả authen và autho :))
@anhtuanpham2270
@anhtuanpham2270 Жыл бұрын
anh có thể làm thêm phần front-end được không ạ
@ThienNguyen-yd2hb
@ThienNguyen-yd2hb 2 жыл бұрын
Làm web thì web thưong mại điện tử dùng hay hay web bằng NodeJS mới cần anh
@holetex
@holetex 2 жыл бұрын
Mọi web áp dụng microservices đều xài em, ko chỉ nodejs
@DuyNguyen-fe5jq
@DuyNguyen-fe5jq 8 ай бұрын
nó giống session được database đúng ko anh
@quanphamanh957
@quanphamanh957 3 жыл бұрын
Em cảm ơn video của anh rất huữ ích ạ, anh ơi anh dùng extension gì mà vs code đẹp thế ạ
@holetex
@holetex 3 жыл бұрын
Theme dracula em nhé
@lamtrand88
@lamtrand88 3 жыл бұрын
Anh làm sâu về Axios khi làm việc với react đi ạ
@toanmacvan9916
@toanmacvan9916 3 жыл бұрын
Anh zai làm series về Reactjs đi anh zai
@duanpham6487
@duanpham6487 11 ай бұрын
E hỏi chút, sao refreshToken phải lưu arr nhỉ
@nnamvlogs5656
@nnamvlogs5656 9 ай бұрын
đây là anh đấy đang giả định, vì không dùng db cụ thể. Như theo thực tế thì nó sẽ đc lưu vào db
@trungnamhoang7748
@trungnamhoang7748 3 жыл бұрын
Anh ơi e học html và CSS đc 2 tháng rồi mà vẫn còn mông lung chắc do e chậm hiểu có thể làm clip chia sẻ cách học chia sẻ kinh nghiệm học của anh đc không ạ e cảm ơn
@lamquach3416
@lamquach3416 3 жыл бұрын
2 cái đó là phần dễ nhất thì phải
@tungls5893
@tungls5893 3 жыл бұрын
cho em hỏi cách deploy Micro services ạ?
@NhacMuiTet
@NhacMuiTet 2 жыл бұрын
Secret Key trong file env nó có ý nghĩa gì vậy anh?
@holetex
@holetex 2 жыл бұрын
Thường các API em sử dụng của một bên thứ 3 sẽ có thông tin này để có thể lấy được dữ liệu. Nên cần bảo mật thông tin này
@HuyPhanTien
@HuyPhanTien 2 жыл бұрын
Theo anh express framework còn đáng học không ạ :( em đang mò mẫm cày mà nghe nói giờ họ dùng nest cả rồi
@holetex
@holetex 2 жыл бұрын
Em cứ nắm vững 1 cái rồi học sang kiến thức mới nhé
@cuongnguyenminh397
@cuongnguyenminh397 3 жыл бұрын
Tại sao mỗi lần login mình đều nhận được 1 accessToken khác nhau trong khi thuật toán mã hóa + payload + secret của mình vẫn giữ nguyên vây anh?
@holetex
@holetex 3 жыл бұрын
Do giải thuật sử dụng để mã hoá đó em. Em tham khảo thêm ở đây www.google.com.vn/amp/s/auth0.com/blog/amp/json-web-token-signing-algorithms-overview/ Cơ bản thì nó sử dụng hàm băm (hash function) vi.wikipedia.org/wiki/H%C3%A0m_b%C4%83m
@kietphamtan5117
@kietphamtan5117 2 жыл бұрын
em bi payload is required la sao vay admin oiii
@tinh447
@tinh447 2 жыл бұрын
A cho e xin code để client gửi token lên server, hoặc tài liệu về việc gửi token không ạ, em cảm ơn.
@phongtranmanh9293
@phongtranmanh9293 2 жыл бұрын
anh có khóa học cho back-end ko ah, đặc biệt là nodejs ạ ?? cảm ơn anh nhiều ạ
@holetex
@holetex 2 жыл бұрын
Hiện tại anh không có em ạ
@panadora_crewmate
@panadora_crewmate 2 жыл бұрын
a ơi cho em hỏi cái thg refreshtoken bên Server sẽ tự động xử lý đi refresh token cấp lại accesstoken cho client hay client tự catch lỗi expired token rồi sau đó đi call api refreshtoken vậy ạ ?, cuối cùng thì e vẫn không hiểu thằng refreshtoken này nó được lưu ở đâu vậy ạ, e hiểu nguyên lý nhưng bước lưu thg refreshtoken còn khá mơ hồ.
@holetex
@holetex 2 жыл бұрын
refreshtoken lưu bên phía client giống như accesstoken nha em. FE sẽ tự check nếu có lỗi là expire thì sẽ dùng refreshtoken để lấy accesstoken mới. Nếu xài axios thì em có thể tham khảo xài axios interceptors để xử lý trường hợp expire token
@blablu2475
@blablu2475 2 жыл бұрын
Vậy làm sao để gửi token từ client về server ạ, dùng .http em ko hiểu lắm
@holetex
@holetex 2 жыл бұрын
Em viết code frontend sử dụng JavaScript để thực hiện việc này nhé
@tranhuyen2444
@tranhuyen2444 3 жыл бұрын
Anh oi vậy cái refresh token chỉ để lấy lại cái access token mới thôi à, bảo vệ quá trình vào các route là cái verify access token ạ? (Trong thời gian ngắn là hết tác dụng) các route khác vào thì client lại xin access token mới?
@holetex
@holetex 3 жыл бұрын
Đúng rồi em. Và em có thể tham khảo cách để xin access token mới từ phía client ở link này stackoverflow.com/questions/54531731/how-to-refresh-jwt-tokens-in-react-js-application
@tranhuyen2444
@tranhuyen2444 3 жыл бұрын
@@holetex Dạ, hay quá, thanks Anh,
@MsHaTrang
@MsHaTrang 3 жыл бұрын
@@holetex Như này máy chủ API liên tục phải trả lại accesstokenk khi client gửi lên refreshtoken xin lại để vào route. Có cái này vào hệ thống sẽ chậm hơn bạn nhỉ?
@tranffff6993
@tranffff6993 3 жыл бұрын
chào anh em mới tìm hiểu về cơ chế xác thực qua jwt , em có 1 điều thắc mắc mà tìm mãi trên mạng không thấy cách giải quyết , khi mình nhận đc jwt thì mình lưu trữ ở đâu phía client anh, cụ thể em là web client và ko dùng lib phía frontend. cảm ơn anh
@holetex
@holetex 3 жыл бұрын
Em lưu vào localStorage cũng được nhé
@tranffff6993
@tranffff6993 3 жыл бұрын
@@holetex vâng, cảm ơn anh
@dkhiemng7806
@dkhiemng7806 3 жыл бұрын
Dạ a ơi . Làm sao để mình biết token đó hết hạn v ạ . Và cách kiểm tra là mỗi lần request mình sẽ kiểm tra token đó hay là mình sẽ kiểm tra trước khi vào web app đó xem token đó còn hạn hay không ? . Và việc kiểm tra mình gọi api về server kiểm tra hay là ở dưới client v ạ ?
@holetex
@holetex 3 жыл бұрын
Khi mình gửi request lên server mà bị trả về lỗi Forbidden thì mình sẽ cần gọi tới api refresh token để lấy access token mới. Em có thể tham khảo cách để xin access token mới từ phía client ở link này stackoverflow.com/questions/54531731/how-to-refresh-jwt-tokens-in-react-js-application
@dkhiemng7806
@dkhiemng7806 3 жыл бұрын
@@holetex Và nếu như thực tế thì mình có cần tạo thêm 1 refresh token từ server để gửi cho client lấy access token không v ạ ? Em cám ơn ạ
@holetex
@holetex 3 жыл бұрын
Có chứ em, trong video anh có chia sẻ cách tạo cả refresh token mà
@dkhiemng7806
@dkhiemng7806 3 жыл бұрын
@@holetex Và trong trường hợp refresh token cũng có hạn mà khi đang truy cập api lấy lại access token thì ở dưới client mình phải bắt như thế nào v ạ. để cho người dùng logout ra login lai để có refresh token mới ạ ?
@holetex
@holetex 3 жыл бұрын
chính xác em ạ
@vanluandvlp
@vanluandvlp 3 жыл бұрын
hello anh >
@holetex
@holetex 3 жыл бұрын
hê lô em :D
@55.leminhtien59
@55.leminhtien59 Жыл бұрын
bác nào có project về phần login logout register bằng nodejs jwt database không cho mình tham khảo với ạ
@lazylongg
@lazylongg 2 жыл бұрын
Anh ơi cho em hỏi cái refreshToken nếu không set timeout thì nó có khác gì cái accessToken vô thời hạn đâu
@nnamvlogs5656
@nnamvlogs5656 9 ай бұрын
ảnh hưởng về mặt security
@quockietmai6456
@quockietmai6456 3 жыл бұрын
Anh cho em hỏi tý ạ. Em đang có 2 server (.Net và spring boot) có cách nào để 2 con này dùng chung 1 bộ token được không ạ? nếu 2 bên mình dùng chung secret key thì có dùng chung token được không ạ?
@starlight9816
@starlight9816 2 жыл бұрын
duoc ban oi, cai dat jwt cho ca 2 server, ve co ban, server authenticate se generate ra token va gui ve phia client, Client se gui token len server kia de authorization. Co che jwt cua 2 server duong nhien la giong nhau, chi khac nhau cach implement.
@Kiensama
@Kiensama 3 жыл бұрын
anh ơi trường hợp user gõ thẳng localhost/books ở trên thanh địa chỉ thì server verify kiểu gì ạ, trong trường hợp token vẫn chưa hết hạn ạ, em cảm ơn
@nnamvlogs5656
@nnamvlogs5656 9 ай бұрын
cái này liên quan tới việc bạn setup middleware ở phía server, nếu trong trường hợp bn đặt xác thực token trc và hợp lệ thì localhost/books sẽ trả data và ngược lại
@phamhung142
@phamhung142 3 жыл бұрын
nhưng nếu tạo refresh token với expire unlimit thì quay trở lại việc security, nếu bị mất cái refresh token cũng tượng tự như bị mất token.
@holetex
@holetex 3 жыл бұрын
Đối với refreshtoken thì mình cũng cần set expire time, trong video mình quên ko set expire time cho nó
@MsHaTrang
@MsHaTrang 3 жыл бұрын
Cho mình hỏi tiếp, sao phải lưu refresh_token lên database, thời gian hết hạn cái token refresh này ở các dự án thực tế mọi người hay để bao lâu?
@holetex
@holetex 3 жыл бұрын
Việc lưu lên db bởi vì mình có thể chủ động remove nó khỏi db khi người dùng thực hiện Đăng xuất. Bạn có thể dùng method verify của jwt nhưng giả sử trường hợp thời gian expries của refresh tokens này là 7 ngày thì khi người dùng thực hiện Đăng xuất trước thời gian này thì refresh token vẫn hợp lệ (mình không thể chủ động expries một token). Trong thực tế thì thường để expries time cho refresh tokens là 7 ngày
@MsHaTrang
@MsHaTrang 3 жыл бұрын
@@holetex cảm ơn bạn nhiều!
@linhtien8735
@linhtien8735 2 жыл бұрын
anh đừng nhấn nhá giọng ạ, nói tự nhiên thì sẽ hay hơn.
@SonNguyen-rb4ut
@SonNguyen-rb4ut 3 жыл бұрын
Cho e hỏi là refresh token hết hạn nhưng user không logout thì làm sao để tạo lại refresh token ạ. Hay là bắt user phải login lại ạ?
@55.leminhtien59
@55.leminhtien59 Жыл бұрын
mình nghĩ nếu sét thời gian cho refresh token 1 thời gian cố định thì khi kết thời gian phía FE sẽ xử lí logout yêu cầu user phải đăng nhập lại
@anvu6368
@anvu6368 3 жыл бұрын
có dạy python django ko anh
@holetex
@holetex 3 жыл бұрын
hiện tại thì chưa em ạ
@nghiatranai2785
@nghiatranai2785 2 жыл бұрын
thầy dạy k hiểu xem youtube lại hiểu :V ảo
@70watchforfun
@70watchforfun 2 жыл бұрын
Không sai về logic nhưng mình muốn nói Bearer not Beaer :))
@otis4ex
@otis4ex 3 жыл бұрын
klq nhưng anh phát âm "s" ở nhiều chỗ không cần ạ =))
@xuanthuc189
@xuanthuc189 3 жыл бұрын
Nội dung cuối cảm thấy không trọn vẹn lắm. Người mới có cảm giác hơi mơ hồ.
@kenzotv6746
@kenzotv6746 3 жыл бұрын
Mình thấy anh này làm giống clip này: kzbin.info/www/bejne/o5PWnqafbNFmqJY
@holetex
@holetex 3 жыл бұрын
đúng rồi em, anh có tham khảo video này khi xây dựng code phần backend nodejs auth. Anh có cập nhật trong phần mô tả
@monglevan7681
@monglevan7681 3 жыл бұрын
1.5 x
@manhhoach2575
@manhhoach2575 3 жыл бұрын
hay quá a ơi
@nguyenquocvuong7235
@nguyenquocvuong7235 2 жыл бұрын
quá hay a ơi
Auth: 03 - JWT là gì và những điều cần biết 🎉
11:44
Easy Frontend
Рет қаралды 46 М.
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 2,7 МЛН
Это было очень близко...
00:10
Аришнев
Рет қаралды 7 МЛН
Colorful Pasta Painting for Fun Times! 🍝 🎨
00:29
La La Learn
Рет қаралды 308 МЛН
My MEAN sister annoys me! 😡 Use this gadget #hack
00:24
JOON
Рет қаралды 2,4 МЛН
PROOF JavaScript is a Multi-Threaded language
8:21
Beyond Fireship
Рет қаралды 287 М.
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 15 М.
Node.js Doesn’t Suck Anymore
16:59
Web Dev Simplified
Рет қаралды 126 М.
Difference between cookies, session and tokens
11:53
Valentin Despa
Рет қаралды 649 М.
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 2,7 МЛН