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

Поделиться
HTML-код
  • Опубликовано: 2 фев 2025

Комментарии • 121

  • @hoangnamnguyen5459
    @hoangnamnguyen5459 3 года назад +2

    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 ạ ❤❤❤❤

  • @huydang2983
    @huydang2983 2 года назад +1

    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 ❤

  • @anhtuanle4991
    @anhtuanle4991 Год назад

    Uầy 38p thui mà quá nhiều thứ cám ơn a :>

  • @huyto2199
    @huyto2199 3 года назад +2

    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

  • @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ỉ

  • @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.

  • @croky9984
    @croky9984 3 года назад +1

    Anh truyền đạt rất dễ hiểu. Cảm ơn anh. 🤗🤗🤗

  • @sonle23-j2d
    @sonle23-j2d 3 года назад +1

    cảm ơn anh, chúc anh có nhiều sức khoẻ và thành công trong công việc !!

  • @angquangtien8107
    @angquangtien8107 3 года назад

    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

  • @arielnguyen9142
    @arielnguyen9142 3 года назад +1

    Hóng đc xem thêm nhiều video bổ ích của a nữa ạ ^_^

  • @footballtony1911
    @footballtony1911 3 года назад +1

    Hay và dễ hiểu quá anh, mong anh làm về chủ đề WebSockets với ạ

  • @playgame88z
    @playgame88z 3 года назад +1

    video khá hay và bổ ích, cảm ơn a nhiều.

  • @phapnguyen155
    @phapnguyen155 3 года назад +1

    hóng anh ra thêm nhìu video nữ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

  • @phamduong3540
    @phamduong3540 2 года назад

    anh giảng hay quá anh ơi

  • @longphinguyen5436
    @longphinguyen5436 3 года назад

    hay quá. ra thêm nhiều video nha

  • @nguyenngochai0z
    @nguyenngochai0z 3 года назад

    hay anh oi ra them nhieu video nua di a

  • @loixuan2154
    @loixuan2154 2 года назад

    Anh dạy hay. Mong anh ra nhiều video 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

  • @SangNguyen-ty6of
    @SangNguyen-ty6of 3 года назад

    Làm series về backend đi a, video hay quá a

  • @nguyencaotai412
    @nguyencaotai412 3 года назад +1

    hóng video làm streaming với react native bác

  • @lenhac9040
    @lenhac9040 2 года назад

    Hay quá

  • @VănThànhHoàng-s1c
    @VănThànhHoàng-s1c Год назад

    cảm ơn anh

  • @hoangucollection6181
    @hoangucollection6181 2 года назад +1

    truyền nhân của Web Dev Simplified kk

  • @TungTobinMHoang
    @TungTobinMHoang 3 года назад

    hay quá a ơi

  • @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 ạ

  • @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

  • @hoangnguyenbui3491
    @hoangnguyenbui3491 2 года назад

    Anh làm seri về nodeJS đi anh.~

  • @xuanthuc189
    @xuanthuc189 3 года назад +1

    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 2 года назад

      vi access token het hieu luc sau 1 khoang thoi gian nen phai refresh lai de lay access token moi

  • @ThaiHaOfficial
    @ThaiHaOfficial 3 года назад

    em cảm ơn anh ạ!

  • @quangloi5652
    @quangloi5652 7 месяцев назад

    😍😍

  • @manurtan9957
    @manurtan9957 2 года назад

    Goood job , Thanks a

  • @ThanhHuynh-bb6to
    @ThanhHuynh-bb6to 3 года назад +1

    a làm về reactjs qua dự án thực tế đi ạ

  • @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 :))

  • @toanmacvan9916
    @toanmacvan9916 3 года назад

    Anh zai làm series về Reactjs đi anh zai

  • @leanhducvt
    @leanhducvt 3 года назад

    Like cho bạn

  • @lamtrand88
    @lamtrand88 3 года назад

    Anh làm sâu về Axios khi làm việc với react đi ạ

  • @HuyNguyen-zp8ju
    @HuyNguyen-zp8ju 3 года назад +1

    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 ạ

  • @anhtuanpham2270
    @anhtuanpham2270 Год назад

    anh có thể làm thêm phần front-end được không ạ

  • @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é

  • @tinh447
    @tinh447 3 года назад

    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.

  • @tainguyen-q4j
    @tainguyen-q4j Год назад

    sao viết hàm middlerware ở dưới route mà nó không lỗi nhỉ

  • @MsHaTrang
    @MsHaTrang 3 года назад +1

    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 года назад +1

      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é !

  • @DuyNguyen-fe5jq
    @DuyNguyen-fe5jq 11 месяцев назад

    nó giống session được database đúng ko anh

  • @trungnamhoang7748
    @trungnamhoang7748 3 года назад +1

    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

  • @NhacMuiTet
    @NhacMuiTet 3 года назад +1

    Secret Key trong file env nó có ý nghĩa gì vậy anh?

    • @holetex
      @holetex  3 года назад +1

      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

  • @cuongnguyenminh397
    @cuongnguyenminh397 3 года назад +1

    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

  • @tungls5893
    @tungls5893 3 года назад

    cho em hỏi cách deploy Micro services ạ?

  • @Aidesvn
    @Aidesvn 2 года назад

    em bi payload is required la sao vay admin oiii

  • @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é

  • @duanpham6487
    @duanpham6487 Год назад

    E hỏi chút, sao refreshToken phải lưu arr nhỉ

    • @nnamvlogs5656
      @nnamvlogs5656 Год назад

      đâ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

  • @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

  • @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 года назад +1

      @@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ỉ?

  • @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 года назад +1

      Hiện tại anh không có em ạ

  • @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 года назад +1

      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

  • @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 года назад +1

      Em lưu vào localStorage cũng được nhé

    • @tranffff6993
      @tranffff6993 3 года назад

      @@holetex vâng, cảm ơn anh

  • @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 ạ

  • @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 Год назад

      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

  • @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é

  • @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.

  • @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 года назад +2

      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 года назад +1

      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 года назад +1

      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!

  • @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 года назад +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ó

  • @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

  • @anvu6368
    @anvu6368 3 года назад

    có dạy python django ko anh

    • @holetex
      @holetex  3 года назад +1

      hiện tại thì chưa em ạ

  • @vanluandvlp
    @vanluandvlp 3 года назад

    hello anh >

    • @holetex
      @holetex  3 года назад

      hê lô em :D

  • @nghiatranai2785
    @nghiatranai2785 2 года назад

    thầy dạy k hiểu xem youtube lại hiểu :V ảo

  • @linhtien8735
    @linhtien8735 3 года назад

    anh đừng nhấn nhá giọng ạ, nói tự nhiên thì sẽ hay hơn.

  • @otis4ex
    @otis4ex 3 года назад

    klq nhưng anh phát âm "s" ở nhiều chỗ không cần ạ =))

  • @70watchforfun
    @70watchforfun 3 года назад

    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:
    ruclips.net/video/mbsmsi7l3r4/видео.html

    • @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