Giải mã JWT
Dán JSON Web Token để xem header và payload dưới dạng JSON đã định dạng. Các mốc thời gian như exp, iat và nbf được chuyển thành ngày dễ đọc, và token hết hạn sẽ được đánh dấu.
Cấu trúc của JWT
JWT gồm ba phần ngăn cách bởi dấu chấm: header.payload.signature. Header và payload là các đối tượng JSON được mã hóa bằng Base64URL không có padding. Chữ ký được tính trên hai phần đầu bằng thuật toán ghi trong header (alg), ví dụ HS256 hoặc RS256.
Claim đăng ký
| Claim | Ý nghĩa |
|---|---|
iss | Bên phát hành |
sub | Chủ thể (thường là ID người dùng) |
aud | Đối tượng (Audience) |
exp | Thời điểm hết hạn (số giây kể từ 1970) |
nbf | Chưa có hiệu lực trước |
iat | Phát hành lúc |
jti | ID token duy nhất |
Giải mã JWT bằng JavaScript
const [h, p] = token.split('.');
const json = (s) => JSON.parse(new TextDecoder().decode(
Uint8Array.from(atob(s.replace(/-/g, '+').replace(/_/g, '/')), (c) => c.charCodeAt(0))));
console.log(json(h), json(p)); Câu hỏi thường gặp
Dán JWT của tôi vào đây có an toàn không?
Việc giải mã diễn ra hoàn toàn trong trình duyệt của bạn; không có gì được gửi tới máy chủ. Dù vậy, hãy coi token production là bí mật.
Giải mã có xác minh chữ ký không?
Không. Ai cũng có thể giải mã JWT vì nó chỉ là Base64URL. Việc xác minh cần secret hoặc public key và phải được thực hiện trên máy chủ của bạn.
Bình luận (0)
Có câu hỏi, ý tưởng hoặc phát hiện lỗi trong “Giải mã JWT”? Hãy để lại bình luận, đánh giá công cụ hoặc trả lời người khác.
Chưa có bình luận nào. Hãy là người đầu tiên chia sẻ ý kiến!