Flekify

VI

Cách giải mã header và payload của JWT

Với JWT dạng compact gồm ba phần, tách token theo dấu chấm rồi giải mã hai phần đầu từ Base64URL thành JSON UTF-8. Chúng chứa header và payload; phần cuối là chữ ký. Đọc được dữ liệu không chứng minh token đến từ nơi phát hành đáng tin.

Bắt đầu bằng token giả lập

Ví dụ e30.e30.AA có header và payload là đối tượng rỗng, cùng phần chữ ký giả. Nó minh họa cấu trúc mà không chứa thông tin đăng nhập thật. Không đọc phần chữ ký như tài liệu JSON thứ ba.

Chọn thư viện hoặc công cụ hỗ trợ Base64URL. Base64 thông thường dùng bộ ký tự khác; dán toàn bộ JWT vào bộ giải mã Base64 không tương đương. Token mã hóa có cấu trúc khác, ngoài phạm vi quy trình này.

e30.e30.AA

Header: {}
Payload: {}
Chữ ký: dữ liệu giả, chưa xác minh

Kiểm tra token từng bước

1. Lấy token thử nghiệm không nhạy cảm từ môi trường bạn quản lý. Bỏ tiền tố Bearer nếu có.

2. Đọc header và payload riêng. Tên thuật toán trong header chỉ là dữ liệu token cung cấp, không phải cấu hình xác minh đáng tin.

3. Đối chiếu issuer, audience và subject với yêu cầu ứng dụng. Claim thời gian dạng số dùng giây; nhân 1.000 khi tạo JavaScript Date.

4. Xem kết quả xác minh thực tế từ thư viện xác thực của ứng dụng. Điều tra lỗi tại đó, không coi payload đọc được là bằng chứng cấp quyền.

Payload đọc được chưa đủ để cấp quyền

Token bị sửa vẫn có thể giải mã thành công. Thời hạn còn xa trong payload chưa được xác minh cũng không đáng tin. Ứng dụng nhận token phải kiểm tra chữ ký và các claim liên quan.

Bearer token có thể cấp quyền truy cập. Không đưa token thật vào URL, ảnh chụp hoặc báo lỗi công khai. Xử lý cục bộ hạn chế việc truyền dữ liệu nhưng không bảo vệ khỏi mọi tiện ích trình duyệt hoặc người dùng chung thiết bị.

Thực hành trên Flekify

Mở công cụ giải mã JWT để xem header, payload và các mốc thời gian có trong token. Cảnh báo chưa xác minh vẫn có ý nghĩa ngay cả khi dữ liệu được phân tích thành công.

Xem token giả lập bằng công cụ JWT

Công cụ liên quan

Giải mã JWT

Xem header, payload và thời hạn JWT. Không xác minh chữ ký.

Định dạng JSON

Định dạng và kiểm tra JSON ngay trong trình duyệt.

Giải mã Base64

Giải mã văn bản Base64 hợp lệ ngay trong trình duyệt.

Hướng dẫn liên quan

Giải mã và xác minh JWT: hiểu đúng các claim

Hiểu công cụ giải mã JWT hiển thị gì, vì sao claim đọc được chưa đáng tin và cách xem thời hạn mà không nhầm với xác minh chữ ký.