Giải mã JWT (JWT Decoder)
Dán JSON Web Token để đọc header và payload, biết khi nào token hết hạn và hiểu từng claim. Token của bạn không bao giờ rời khỏi trình duyệt.
Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì
Giải mã không phải là xác minh. Bất kỳ ai cũng đọc được header và payload của JWT, vì chúng chỉ được mã hóa base64url. Công cụ này cho thấy token tuyên bố điều gì; nó không chứng minh token là thật. Hãy luôn xác minh chữ ký trên máy chủ của bạn.
Header
Payload
Giải thích các claim
Xác minh chữ ký (tùy chọn, HS256/HS384/HS512)
Kiểm tra chữ ký HMAC bằng secret bạn nhập, dùng Web Crypto API của trình duyệt. Secret không bao giờ rời khỏi trang này. Token RSA/ECDSA cần khóa công khai của bên phát hành nên không được xác minh ở đây.
Cách dùng JWT Decoder
- Dán token vào ô Token đã mã hóa. Tiền tố
Bearertừ header Authorization sẽ được bỏ qua. - Header và payload được giải mã ngay lập tức và hiển thị dưới dạng JSON đã định dạng.
- Đọc bảng Giải thích các claim:
exp,iatvànbfđược chuyển thành ngày giờ kèm thời gian “hết hạn sau” / “đã hết hạn cách đây”. - Xem thanh trạng thái để biết vấn đề hết hạn và các cảnh báo về thiết lập rủi ro như
alg: none. - Tùy chọn nhập secret dùng chung để xác minh chữ ký HS256, HS384 hoặc HS512 ngay trên máy.
Bên trong JWT có gì?
JSON Web Token (RFC 7519) là ba chuỗi base64url nối với nhau bằng dấu chấm: header.payload.signature. Header nêu thuật toán ký (alg) và loại token. Payload chứa các claim, như người dùng là ai và khi nào token hết hạn. Chữ ký được tính trên hai phần đầu bằng secret hoặc khóa bí mật.
Giải mã không phải là xác minh
Header và payload chỉ được mã hóa (encode), không được mã hóa bảo mật (encrypt), nên ai giữ token cũng đọc được. Vì vậy đừng bao giờ đặt mật khẩu hay secret vào payload JWT. Giải mã cho bạn biết token nói gì. Xác minh chữ ký, thường trên máy chủ API bằng thư viện như jose hoặc PyJWT, chứng minh ai đã phát hành nó và nó chưa bị sửa đổi. Máy chủ cũng phải kiểm tra exp, nbf, iss và aud, và từ chối các thuật toán không mong đợi.
Bảng tra các claim đăng ký
| Claim | Ý nghĩa |
|---|---|
iss | Issuer: ai đã tạo và ký token |
sub | Subject: thường là ID người dùng |
aud | Audience: token dành cho API nào |
exp | Thời điểm hết hạn, tính bằng giây kể từ Unix epoch |
nbf | Không hợp lệ trước thời điểm này |
iat | Thời điểm phát hành |
jti | ID duy nhất của token, hữu ích cho danh sách thu hồi |
Debug lỗi “token expired”
Nếu API từ chối một token trông vẫn còn mới, hãy so sánh exp và nbf với đồng hồ máy chủ. Lệch giờ nhỏ giữa các máy là chuyện thường gặp, nên hầu hết thư viện cho phép sai số 30-60 giây. Cũng hãy kiểm tra exp có tính bằng giây không: giá trị mili giây là lỗi phổ biến và đẩy thời điểm hết hạn tới hàng nghìn năm sau.
Câu hỏi thường gặp
Dán JWT production vào đây có an toàn không?
Công cụ này có xác minh chữ ký JWT không?
Vì sao token của tôi hiển thị là đã hết hạn?
exp nằm trong quá khứ so với đồng hồ máy tính của bạn. Hãy yêu cầu token mới, hoặc làm mới bằng refresh token. Nếu thời gian trông sai, hãy kiểm tra lệch giờ hoặc giá trị exp bị ghi bằng mili giây.JWT, JWS và JWE khác nhau thế nào?
Vì sao alg “none” nguy hiểm?
alg: none và chỉ nên chấp nhận đúng thuật toán mà nó mong đợi.