JWT và OAuth2 không cùng loại khái niệm, nên không phải “cái nào hơn cái nào”, mà là:
JWT (JSON Web Token) là một chuỗi token dạng JSON được ký (signed) để xác thực dữ liệu.
Chuẩn này được định nghĩa trong RFC 7519.
Cấu trúc gồm 3 phần:
Header.Payload.Signature
Ví dụ:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
JWT thường dùng để:
OAuth 2.0 (Open Authorization 2.0) là một giao thức ủy quyền (authorization framework).
Nó cho phép:
Một ứng dụng truy cập tài nguyên của user trên hệ thống khác mà không cần biết mật khẩu.
Ví dụ:
OAuth2 định nghĩa:
| JWT | OAuth2 | |
|---|---|---|
| Bản chất | Định dạng token | Giao thức ủy quyền |
| Dùng để | Chứa thông tin user | Cấp quyền truy cập |
| Có thay thế nhau không? | ❌ Không | ❌ Không |
| Có thể dùng chung không? | ✅ Có | ✅ Có |
Rất thường gặp:
👉 OAuth2 cấp Access Token
👉 Access Token đó được encode dưới dạng JWT
Tức là:
OAuth2 → phát hành token JWT → là hình dạng của token đó
Bạn đăng nhập bằng Google:
| Nếu ví JWT là gì? | → Là cái thẻ căn cước |
|---|---|
| Nếu ví OAuth2 là gì? | → Là quy trình cấp thẻ |