Trình mã hóa JWT cục bộ, an toàn
Trình mã hóa jwt này cho phép các lập trình viên nhanh chóng tạo, chỉnh sửa và ký JSON Web Tokens trực tiếp ngay trên trình duyệt. Cho dù đang xây dựng luồng xác thực, kiểm thử API endpoint hay gỡ lỗi microservice, bạn đều có thể tạo token hợp lệ ngay lập tức mà không cần viết script hay để lộ thông tin xác thực cho các máy chủ bên thứ ba.
Nhờ sử dụng Web Crypto API tích hợp sẵn của trình duyệt, mọi quá trình xử lý dữ liệu và ký mã hóa đều diễn ra hoàn toàn trên thiết bị của bạn. JSON payload và secret key của bạn không bao giờ bị tải lên, lưu trữ hay ghi log. Phương thức ưu tiên xử lý tại máy (local-first) này giúp việc ký JWT online cực kỳ an toàn, ngay cả khi làm việc với các thông tin xác thực nhạy cảm trong môi trường development hoặc staging.
Cách tạo JWT token
Để tạo JWT token, bạn cần ba thành phần: header (xác định thuật toán), payload (chứa dữ liệu của bạn), và secret key (khóa bí mật để bảo vệ token).
Bắt đầu bằng việc chọn thuật toán. Công cụ này hoạt động như một trình tạo JWT HS256 mạnh mẽ, đồng thời hỗ trợ cả HS384 và HS512. Đây là các thuật toán HMAC đối xứng, nghĩa là cùng một secret key sẽ được dùng để ký (sign) và xác minh (verify) token sau này. Số càng lớn (ví dụ: 512) thì kích thước chuỗi hash tạo ra càng dài, giúp tăng cường độ bảo mật nhưng bù lại chuỗi token cũng sẽ dài hơn một chút.
Tiếp theo, hãy nhập payload vào ô văn bản. Payload phải là một định dạng JSON hợp lệ. Khi bạn chỉnh sửa JSON hoặc cập nhật secret key, công cụ sẽ tính toán lại chữ ký (signature) theo thời gian thực, đồng thời báo lỗi ngay lập tức nếu cấu trúc JSON của bạn sai cú pháp. Sau khi thiết lập xong payload và secret key, token hoàn chỉnh đã sẵn sàng để sao chép và sử dụng trong header Authorization hoặc cookie của ứng dụng.
Các trường hợp sử dụng phổ biến để tạo token
Việc có sẵn một công cụ tạo jwt đáng tin cậy là rất cần thiết trong phát triển web hiện đại. Các lập trình viên thường xuyên sử dụng công cụ này cho nhiều kịch bản kiểm thử và gỡ lỗi khác nhau:
Kiểm thử các API Endpoint: Khi làm việc với các API client như Postman hoặc Insomnia, bạn thường cần một bearer token hợp lệ để truy cập các route được bảo vệ. Thay vì phải chạy toàn bộ ứng dụng frontend để đăng nhập và lấy token, bạn có thể tạo thủ công một token tại đây với chính xác user ID và role mà bạn cần.
Gỡ lỗi logic xác thực: Nếu backend của bạn từ chối token, việc tạo token thủ công sẽ giúp khoanh vùng sự cố. Bạn có thể kiểm tra xem lỗi bắt nguồn từ sai secret key, payload sai định dạng hay do không khớp thuật toán ký.
Tạo các trường hợp ngoại lệ (Edge case): Việc kiểm thử cách backend xử lý các token hết hạn, thiếu claim hoặc role không đủ quyền là rất quan trọng đối với bảo mật. Bạn có thể dễ dàng tùy chỉnh JSON payload tại đây để tạo ra các trường hợp ngoại lệ này và đảm bảo server của bạn phản hồi đúng các mã trạng thái HTTP.
Quản lý timestamp và claim
JSON Web Token sử dụng các trường cụ thể, được gọi là claim, để truyền tải thông tin về vòng đời của token và người dùng mà nó đại diện. Các claim về thời gian phổ biến nhất là iat (Thời điểm phát hành) và exp (Thời gian hết hạn). Cả hai claim này đều yêu cầu Unix timestamp, tức là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970.
Việc tính toán thủ công các timestamp này có thể khá mất thời gian khi test. Để tăng tốc quy trình làm việc, công cụ này cung cấp các nút thao tác nhanh ở phía trên trình chỉnh sửa payload.
- Nhấp vào iat = now sẽ ngay lập tức chèn hoặc cập nhật trường
iatvới thời gian Unix hiện tại. - Nhấp vào exp = +1h hoặc exp = +24h sẽ tính toán timestamp trong tương lai và cập nhật trường
exptương ứng.
Điều này đảm bảo các token bạn tạo ra sẽ hợp lệ ngay lập tức và không bị logic xác thực thời gian của server từ chối sớm.
Xử lý secret Base64
Một vấn đề thường gặp khi ký JWT online là xử lý mã hóa secret key. Nhiều hệ thống backend và tài liệu hướng dẫn khuyên bạn nên tạo một mảng byte ngẫu nhiên, độ bảo mật cao cho HMAC secret và lưu trữ dưới dạng chuỗi Base64 trong các biến môi trường.
Nếu server của bạn giải mã chuỗi Base64 này thành byte thô (raw bytes) trước khi ký hoặc xác thực token, việc dán trực tiếp chuỗi Base64 vào công cụ tạo JWT thông thường sẽ cho ra chữ ký không hợp lệ. Công cụ sẽ coi các ký tự Base64 là văn bản thuần túy (plain text), dẫn đến sai lệch chữ ký.
Để khắc phục, bạn chỉ cần tích vào ô Secret được mã hóa Base64. Công cụ sẽ giải mã chuỗi secret của bạn về dạng byte thô ban đầu trước khi thực hiện băm HMAC, đảm bảo chữ ký tạo ra khớp hoàn toàn với môi trường backend của bạn.
Tìm hiểu cấu trúc JWT
Khi bạn tạo token, kết quả sẽ được hiển thị phân biệt bằng màu sắc để giúp bạn dễ dàng nhận biết cấu trúc. Một JWT tiêu chuẩn gồm ba phần được phân tách bằng dấu chấm (.):
- Header (Màu đỏ): Chứa siêu dữ liệu về token, chủ yếu là thuật toán ký (ví dụ:
{"alg":"HS256","typ":"JWT"}). Phần này được tạo tự động dựa trên thuật toán bạn chọn và được mã hóa Base64-URL. - Payload (Màu xanh dương): Dữ liệu JSON thực tế của bạn, cũng được mã hóa Base64-URL. Bất kỳ ai bắt được token đều có thể dễ dàng đọc được phần này, đó là lý do tại sao bạn không bao giờ nên đưa mật khẩu hoặc dữ liệu cực kỳ nhạy cảm vào payload.
- Signature (Màu xanh lá): Mã băm mật mã của header và payload đã mã hóa, được ký bằng khóa bí mật (secret key) của bạn. Phần này đảm bảo rằng token không bị sửa đổi trong quá trình truyền tải.
Nếu bạn đã có sẵn một token và muốn xem nội dung bên trong mà không cần khóa bí mật, bạn có thể dán nó vào công cụ Giải mã JWT của chúng tôi để kiểm tra header và payload một cách an toàn.