Tìm công cụ

Tìm kiếm nhanh công cụ

Xác thực JWT

Xác thực chữ ký của token JWT có hợp lệ không.100% xử lý cục bộ, không tải lên, không rủi ro.

JWT là gì?
JWT (JSON Web Token) là một tiêu chuẩn mở (RFC 7519) định nghĩa một cách nhỏ gọn và tự chứa để truyền tải thông tin một cách an toàn giữa các bên. Thông tin này có thể được xác thực và tin cậy vì nó được ký số.
Cấu trúc của JWT
JWT bao gồm ba phần, được phân cách bằng dấu chấm (.): Phần đầu (Header), Tải trọng (Payload) và Chữ ký (Signature). Phần đầu chỉ định thuật toán ký, tải trọng chứa các tuyên bố, chữ ký dùng để xác thực thông điệp không bị giả mạo.
Các trường hợp sử dụng JWT phổ biến
Xác thực (trường hợp phổ biến nhất), trao đổi thông tin (JWT có thể truyền tải thông tin an toàn vì chúng có thể được ký), ủy quyền (chứa thông tin quyền hạn của người dùng) và triển khai đăng nhập một lần.
Các loại thuật toán ký
JWT hỗ trợ nhiều thuật toán ký, chủ yếu chia làm hai loại: Thuật toán đối xứng dựa trên HMAC (như HS256) và thuật toán bất đối xứng dựa trên RSA/ECDSA (như RS256, ES256). Thuật toán đối xứng dùng cùng một khóa để ký và xác thực, thuật toán bất đối xứng dùng khóa riêng để ký, khóa công khai để xác thực.
Lưu ý bảo mật
Không lưu trữ thông tin nhạy cảm (như mật khẩu) trong JWT vì phần tải trọng của JWT chỉ được mã hóa Base64, không phải mã hóa. Đối với ứng dụng yêu cầu bảo mật cao, nên sử dụng thời gian hết hạn ngắn và áp dụng chiến lược luân chuyển token.
Xử lý khi JWT hết hạn?
Khi JWT hết hạn, máy chủ sẽ từ chối token này. Cách xử lý được khuyến nghị là triển khai cơ chế token làm mới (Refresh Token), client sử dụng token làm mới để lấy token truy cập mới mà không yêu cầu người dùng đăng nhập lại. Token làm mới thường có thời gian hết hạn dài hơn, nhưng nên được lưu trữ cẩn thận.
Làm thế nào để thu hồi JWT?
Về mặt kỹ thuật, JWT được thiết kế là token không trạng thái, không thể thực sự bị thu hồi. Nhưng có một số giải pháp phổ biến: Duy trì danh sách đen các token đã bị thu hồi (có thể làm mất đi lợi thế không trạng thái của JWT), sử dụng thời gian hết hạn ngắn kết hợp với token làm mới, hoặc nhúng mã phiên bản vào token, máy chủ có thể từ chối phiên bản cũ.
Sự khác biệt giữa JWT và session?
JWT là token tự chứa, bao gồm tất cả thông tin cần thiết, phù hợp với hệ thống phân tán, không cần máy chủ lưu trữ trạng thái phiên. Session dựa trên lưu trữ phía máy chủ, cần duy trì trạng thái phiên, phù hợp hơn với kiến trúc máy chủ đơn. JWT thân thiện hơn với mở rộng, nhưng thu hồi phức tạp; Session dễ thu hồi, nhưng khả năng mở rộng kém.