Hiểu xác thực mã thông báo web JSON

Tram Ho

I. Tại sao chúng ta phải sử dụng JSON Web Token ?

JSON Web Token (JWT) là một cách an toàn, nhỏ gọn và khép kín để truyền thông tin giữa nhiều bên dưới dạng đối tượng JSON.
Giả sử bạn muốn đăng nhập vào một ứng dụng, như nói Tinder. Tinder cho phép người dùng đăng nhập bằng hồ sơ Facebook của họ. Vì vậy, khi người dùng chọn tùy chọn để đăng nhập bằng Facebook, ứng dụng sẽ liên lạc với máy chủ Xác thực Facebook của Facebook với thông tin xác thực của người dùng (tên người dùng và mật khẩu).
Khi máy chủ Xác thực xác minh thông tin đăng nhập của người dùng, nó sẽ tạo JWT và gửi cho người dùng. Ứng dụng hiện có JWT này và cho phép người dùng truy cập vào dữ liệu của nó.

Cấu trúc JWT’s

JSON Web Token bao gồm ba phần được phân tách bằng một bản. Họ đang:

  • Header
  • Payload
  • Signature
    Tiêu đề thường bao gồm hai phần: loại token và thuật toán băm đang được sử dụng.

Payload là nơi lưu trữ thông tin thực tế mà chúng tôi muốn gửi. Dưới đây là một ví dụ về Payload đơn giản. Biết rằng Payload có thể phức tạp hơn cách này để đảm bảo bảo mật tốt hơn.

II. Sử dụng JWT vào ứng dụng như thế nào

  • Cài đặt JWT vào ứng dung:
    npm install jsonwebtoken

  • Thư mục service để code phần login mình có code như sau:

Các bạn chú ý ở dòng này

Có nghĩa khi dòng code này chạy jwt.sign nó sẽ tạo ra 1 token , expiresIn: ‘1d’ là token sẽ hết hạn sau 1 ngày

  • Ở Controller mình sẽ gọi vào Service code như trên như sau :

  • Kết quả khi login như sau

III. Code tham khảo:

https://github.com/trieunnh-0800/node-api

IV. Kết bài :

Trên đó là những chia sử cơ bản nhất của mình về tìm hiểu JWT (khi mình tìm hiểu làm việc với api ) , hy vọng qua bài bài này mình giúp các bạn hiểu rõ về JWT , sau đó tự tin sử dụng kiến thức đó vào dự án 1 cách nhanh nhất có thể .

V. Tài liệu tham khảo :

https://blog.bitsrc.io/understanding-json-web-token-authentication-a1febf0e15

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo