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

  Рет қаралды 51,535

HoleTex

HoleTex

Күн бұрын

Пікірлер: 121
@anhtuanle4991
@anhtuanle4991 Жыл бұрын
Uầy 38p thui mà quá nhiều thứ cám ơn a :>
@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ỉ
@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 !!
@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.
@arielnguyen9142
@arielnguyen9142 3 жыл бұрын
Hóng đc xem thêm nhiều video bổ ích của a nữa ạ ^_^
@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
@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
@playgame88z
@playgame88z 3 жыл бұрын
video khá hay và bổ ích, cảm ơn a nhiều.
@phamduong3540
@phamduong3540 2 жыл бұрын
anh giảng hay quá anh ơi
@phapnguyen155
@phapnguyen155 3 жыл бұрын
hóng anh ra thêm nhìu video nữa
@longphinguyen5436
@longphinguyen5436 3 жыл бұрын
hay quá. ra thêm nhiều video nha
@footballtony1911
@footballtony1911 2 жыл бұрын
Hay và dễ hiểu quá anh, mong anh làm về chủ đề WebSockets với ạ
@loixuan2154
@loixuan2154 2 жыл бұрын
Anh dạy hay. Mong anh ra nhiều video nữa.
@VănThànhHoàng-s1c
@VănThànhHoàng-s1c Жыл бұрын
cảm ơn anh
@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 ạ
@nguyenngochai0z
@nguyenngochai0z 3 жыл бұрын
hay anh oi ra them nhieu video nua di a
@lenhac9040
@lenhac9040 2 жыл бұрын
Hay quá
@ThaiHaOfficial
@ThaiHaOfficial 3 жыл бұрын
em cảm ơn anh ạ!
@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
@SangNguyen-ty6of
@SangNguyen-ty6of 3 жыл бұрын
Làm series về backend đi a, video hay quá a
@TungTobinMHoang
@TungTobinMHoang 3 жыл бұрын
hay quá a ơi
@manurtan9957
@manurtan9957 2 жыл бұрын
Goood job , Thanks a
@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!
@nguyencaotai412
@nguyencaotai412 3 жыл бұрын
hay đó bác
@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
@hoangucollection6181
@hoangucollection6181 2 жыл бұрын
truyền nhân của Web Dev Simplified kk
@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 :))
@nguyencaotai412
@nguyencaotai412 3 жыл бұрын
hóng video làm streaming với react native bác
@quangloi5652
@quangloi5652 6 ай бұрын
😍😍
@tainguyen-q4j
@tainguyen-q4j Жыл бұрын
sao viết hàm middlerware ở dưới route mà nó không lỗi nhỉ
@kietphamtan5117
@kietphamtan5117 2 жыл бұрын
em bi payload is required la sao vay admin oiii
@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 11 ай бұрын
vì nó theo chuẩn http bn à
@leanhducvt
@leanhducvt 3 жыл бұрын
Like cho bạn
@duanpham6487
@duanpham6487 Жыл бұрын
E hỏi chút, sao refreshToken phải lưu arr nhỉ
@nnamvlogs5656
@nnamvlogs5656 11 ай бұрын
đâ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
@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
@hoangnguyenbui3491
@hoangnguyenbui3491 2 жыл бұрын
Anh làm seri về nodeJS đi 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é
@NhacMuiTet
@NhacMuiTet 3 жыл бұрын
Secret Key trong file env nó có ý nghĩa gì vậy anh?
@holetex
@holetex 3 жыл бұрын
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
@anhtuanpham2270
@anhtuanpham2270 Жыл бұрын
anh có thể làm thêm phần front-end được không ạ
@DuyNguyen-fe5jq
@DuyNguyen-fe5jq 9 ай бұрын
nó giống session được database đúng ko anh
@tungls5893
@tungls5893 3 жыл бұрын
cho em hỏi cách deploy Micro services ạ?
@blablu2475
@blablu2475 3 жыл бұрын
Vậy làm sao để gửi token từ client về server ạ, dùng .http em ko hiểu lắm
@holetex
@holetex 3 жыл бұрын
Em viết code frontend sử dụng JavaScript để thực hiện việc này nhé
@ThanhHuynh-bb6to
@ThanhHuynh-bb6to 3 жыл бұрын
a làm về reactjs qua dự án thực tế đi ạ
@ThienNguyen-yd2hb
@ThienNguyen-yd2hb 3 жыл бұрын
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 3 жыл бұрын
Mọi web áp dụng microservices đều xài em, ko chỉ nodejs
@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 11 ай бұрын
ảnh hưởng về mặt security
@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.
@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 11 ай бұрын
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
@toanmacvan9916
@toanmacvan9916 3 жыл бұрын
Anh zai làm series về Reactjs đi anh zai
@panadora_crewmate
@panadora_crewmate 3 жыл бұрын
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 3 жыл бұрын
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
@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é !
@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
@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ó
@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ỉ?
@HuyPhanTien
@HuyPhanTien 3 жыл бұрын
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 3 жыл бұрын
Em cứ nắm vững 1 cái rồi học sang kiến thức mới nhé
@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 ạ
@lamtrand88
@lamtrand88 3 жыл бұрын
Anh làm sâu về Axios khi làm việc với react đi ạ
@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
@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 ạ?
@LeMinhTien4323
@LeMinhTien4323 Жыл бұрын
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
@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 ạ
@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!
@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.
@LeMinhTien4323
@LeMinhTien4323 Жыл бұрын
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 ạ
@vanluandvlp
@vanluandvlp 3 жыл бұрын
hello anh >
@holetex
@holetex 3 жыл бұрын
hê lô em :D
@anvu6368
@anvu6368 3 жыл бұрын
có dạy python django ko anh
@holetex
@holetex 3 жыл бұрын
hiện tại thì chưa em ạ
@linhtien8735
@linhtien8735 2 жыл бұрын
anh đừng nhấn nhá giọng ạ, nói tự nhiên thì sẽ hay hơn.
@nghiatranai2785
@nghiatranai2785 2 жыл бұрын
thầy dạy k hiểu xem youtube lại hiểu :V ảo
@otis4ex
@otis4ex 3 жыл бұрын
klq nhưng anh phát âm "s" ở nhiều chỗ không cần ạ =))
@70watchforfun
@70watchforfun 2 жыл бұрын
Không sai về logic nhưng mình muốn nói Bearer not Beaer :))
@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ồ.
@monglevan7681
@monglevan7681 3 жыл бұрын
1.5 x
@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ả
@manhhoach2575
@manhhoach2575 3 жыл бұрын
hay quá a ơi
@nguyenquocvuong7235
@nguyenquocvuong7235 2 жыл бұрын
quá hay a ơi
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
FastAPI Authentication with  JWT (JSON Web Tokens)
56:18
Bek Brace
Рет қаралды 101 М.
Deploy NextJS lên VPS | UltaHost (+Auto deploy)
38:50
HoleTex
Рет қаралды 4,7 М.
Bài 3. Django Create Project
9:16
Nhà giáo tập sự
Рет қаралды 201
Học ES6 JavaScript cho người mới bắt đầu (2021)
35:55
Redux Thunk - Middleware trong Redux Toolkit (2022)
1:25:44
HoleTex
Рет қаралды 34 М.
JWT Authentication Tutorial - Node.js
27:36
Web Dev Simplified
Рет қаралды 1 МЛН
NestJS JWT Authentication Tutorial
49:04
Anson the Developer
Рет қаралды 40 М.
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН