Json Web Token – DEV Community

August 19, 2022


Để phục vụ mục đích xác thực người dùng và bảo mật để trao đổi thông tin qua nhiều ứng dụng. JWT(json web token) ra đời. Sau đây là một số thông tin về JWT.
JWT structure: có 3 phần: Header, Payload, Signature.

  1. Header:
    chứa loại token và thuật toán mã hóa nào
  2. Payload:
    chứa các claim. Claims là các biểu thức về các đối tượng(thường là người dùng) và các dữ liệu liên quan. Có 3 loại claims: registered, public, private claims.
  3. Registered claim:
    cung cấp các thông tin: iss (issuer), exp (expiration time), sub (subject), aud (audience),… Claimnày không bắt buộc nhưng được khuyên dùng.
  4. Public claim:
    Có thể được định nghĩa bởi người dùng.(Nhưng tránh trùng nhau giữa các claim sẽ được thông qua URI nơi chứa các namespace tránh trùng)
  5. Private claim:
    Được định nghĩa bởi người dùng, dùng để chia sẻ thông tin giữa 2 partner.
  6. Signature:
    Là một chuỗi mã hóa được tạo bởi header, payload và sceret key.
    Do signature bao gồm cả header và payload nên có thể dùng để kiểm tra dữ liệu có toàn vẹn khi truyền tải.
    Workflow JWT:
    Image description

Sự khác biệt giữa cookies và JWT:
Image description
Cookies:

  • Chứa session id.
  • Với mỗi request đều tra cứu dữ liệu database.
  • Tất cả xử lý đều nằm trên cùng 1 máy chủ.
  • Mở rộng qui mô khó khăn.

JWT:

  • Chứa signature xác nhận thông tin người dùng.
  • Không yêu cầu tra cứu dữ liệu database.
  • Được lưu trữ tại client. Nên việc xử lý có thể trên nhiều máy chủ khác nhau.
  • Mở rộng qui mô dễ dàng.

Tài liệu tham khảo:



Source link

Comments 0

Leave a Reply

Your email address will not be published. Required fields are marked *