Authentication trên nodeJS thông qua JWT



  • Cho mình hỏi khi các bạn authen 1 tài khoản đăng nhập bằng Json Web Token thì các bạn dùng phương thức gì để lưu token và truyền token
    Mình nên dùng cookie hay sesstion để lưu thì tốt hơn hay còn cách nào hay hơn
    Khi truyền token đi thì mình nhúng vào header để truyền đi được không
    Mình đang làm authen chi RESTFULL API có thể dùng được cho mọi nơi web lẫn mobile app.
    Ai có ý kiến hay xin chia sẽ cho mình với.
    Mình cảm ơn nhiều



  • Đối với ứng dụng SPA (Single Page Application) bạn có thể lưu vào localStorage. Mỗi lần gởi request lên server, chúng ta chèn JWT vào header của request.

    papa elf

    1


  • @tuanquynet
    Cho mình hỏi luôn là
    ở phía browser mình lấy token trong header được gửi lên thì mình dùng hàm nào thế
    và khi mình lưu token trong local storage như vậy vẫn bị người khác xem token của mình thì làm như thế nào



  • @Long-Lê :

    1. Để chứng thực user đã login. Web Server App bắt buộc phải lưu xuống client hoặc lưu vào cookie hoặc lưu vào localStorage.
    2. Cả cookie và localStorage đều có cùng ở mức độ rủi ro như nhau. Nếu bạn để người khác lẽn vào máy bạn lúc đang mở browser thì đều bị mất account. Vì bản chất cookie cũng lưu trên browser. Đối với cookie-session, bạn có thể set expired date ngắn. Đối với token bạn cũng có thể làm như vậy.
      Bạn có thể tham khảo thêm ở bài viết này: https://auth0.com/blog/ten-things-you-should-know-about-tokens-and-cookies/#token-expiration

    papa elf

    0


  • Không biết các pro khác làm sao nhưng đối với mình thì mình lưu vào req;
    example:
    ....function(req,res){
    req.user=user;
    })
    Thử test đi ở đâu cũng gọi được nó!.



  • Bạn nên dùng cookie-session, và thay Json Web Token bằng module express-session vì nó support vấn đề này cực tốt. Như vậy thông tin nhạy cảm sẽ được lưu trên server. Vừa an toàn vừa dể truy cập.


Log in to reply