Flekify

VI

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

Giải mã JWT giúp đọc dữ liệu. Xác minh kiểm tra chữ ký bằng khóa đáng tin và thuật toán được phép; ứng dụng còn phải áp dụng quy tắc claim. Token có thể giải mã bình thường nhưng vẫn bị giả, hết hạn hoặc dành cho dịch vụ khác. Flekify giải mã token, không xác minh token.

Đọc ba phần của token

JWT ký dạng compact có header, payload và chữ ký, phân cách bởi dấu chấm. Header và payload là đối tượng JSON mã hóa Base64url. Base64url dùng bộ ký tự phù hợp URL và thường bỏ ký tự đệm; đây không phải mã hóa bảo mật. Chữ ký không phải tài liệu JSON thứ ba. Token mã hóa bảo mật dùng dạng khác mà công cụ này không hỗ trợ.

Xem payload thử nghiệm

Dùng token từ môi trường bạn quản lý. Xem sub là chủ thể, iss là nơi phát hành, aud là đối tượng nhận và exp là thời hạn nếu có. Tên claim mô tả vai trò dự kiến chứ không xác nhận giá trị đúng. JSON dưới đây chỉ minh họa, không phải token đã ký hay giá trị claim khuyến nghị dùng thật.

{
  "sub": "test-user",
  "iss": "https://issuer.example",
  "aud": "example-api",
  "exp": 1700000000
}

Xem token thử nghiệm bằng công cụ JWT

Hiểu đúng các mốc thời gian

NumericDate của JWT dùng giây từ mốc Unix, còn Date của JavaScript dùng mili giây. Nhân NumericDate với 1.000 khi xem bằng JavaScript. exp là thời hạn, nbf là thời điểm chưa được dùng trước đó và iat là lúc phát hành. Flekify có thể hiển thị các mốc này nhưng đồng hồ trình duyệt có thể khác máy chủ; thời hạn còn xa không chứng minh chữ ký hợp lệ.

Xác minh trong ứng dụng sử dụng token

Dùng thư viện xác thực và cấu hình khóa đáng tin của ứng dụng. Giới hạn thuật toán, chọn khóa từ cấu hình nơi phát hành đáng tin và kiểm tra audience, issuer cùng claim thời gian liên quan. Không lấy khóa từ URL tùy ý chỉ vì token chưa tin cậy yêu cầu. Không cấp quyền chỉ dựa vào payload đọc được hoặc việc có phần chữ ký.

Phân biệt kiểm tra và chia sẻ token

Bearer token có thể cấp quyền truy cập dù payload trông vô hại. Ưu tiên token thử nghiệm, không đăng token thật trong ảnh chụp, báo lỗi hoặc URL. Công cụ Flekify xử lý giá trị cục bộ nhưng thiết bị dùng chung hoặc tiện ích trình duyệt vẫn có thể làm lộ dữ liệu. Dùng công cụ định dạng JSON cho payload không nhạy cảm đã tách; công cụ Base64 thông thường không xác minh 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ý.

Giải mã Base64

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

Định dạng JSON

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

Hướng dẫn liên quan

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

Đọc ba phần của JWT thử nghiệm, kiểm tra các claim thời gian và phân biệt giải mã với xác minh chữ ký.