Tạo JWT
Tạo JWT có chữ ký với header, payload và khóa tùy chỉnh. Hỗ trợ HS256, RS256, ES256.
JWT là gì?
JWT (JSON Web Token, RFC 7519) là tiêu chuẩn mở để truyền thông tin an toàn dưới dạng đối tượng JSON nhỏ gọn. Gồm ba phần cách nhau bởi dấu chấm: Header.Payload.Signature.
Các trường hợp sử dụng phổ biến của JWT?
JWT được sử dụng rộng rãi cho xác thực (single sign-on), ủy quyền API và trao đổi thông tin an toàn. Sau đăng nhập, server phát JWT mà client đính kèm trong các yêu cầu tiếp theo.
Chọn giữa HS256, RS256 và ES256 như thế nào?
HS256 dùng bí mật chung và nhanh nhất, phù hợp dịch vụ đơn. RS256 dùng cặp khóa RSA, tốt hơn cho kiến trúc đa dịch vụ. ES256 dùng khóa đường cong elliptic, bảo mật cao với chữ ký ngắn hơn.
Claims trong JWT là gì?
Claims là các tuyên bố trong payload. Claims đã đăng ký gồm iss (nhà phát hành), sub (chủ đề), exp (hết hạn), aud (đối tượng). Claims công khai có thể đăng ký tại IANA. Claims riêng là trường tùy chỉnh.
Làm thế nào để xác minh JWT?
Giải mã header để lấy thuật toán, sau đó dùng khóa phù hợp (bí mật chung cho HMAC, khóa công khai cho RSA/ECDSA) để xác minh chữ ký. Kiểm tra cả exp, iss và aud.
Tạo JWT trong trình duyệt có an toàn không?
Có, công cụ này dùng Web Crypto API. Khóa và token không rời khỏi trình duyệt. Không có dữ liệu nào được gửi đến máy chủ.
Sự khác biệt giữa mã hóa và ký?
Mã hóa (Base64) chỉ chuyển đổi dữ liệu sang định dạng truyền tải được và ai cũng có thể giải mã. Ký tạo ra băm mật mã chứng minh token không bị thay đổi.
JWT có thể được mã hóa không?
Có, JWE (JSON Web Encryption) mã hóa nội dung payload. JWT tiêu chuẩn (JWS) chỉ đảm bảo tính toàn vẹn, nhưng payload có thể đọc được bởi bất kỳ ai có token.
Thực tiễn bảo mật tốt nhất cho JWT?
Luôn đặt thời gian hết hạn ngắn. Dùng bí mật mạnh, ngẫu nhiên cho HMAC. Lưu khóa riêng tư an toàn. Không đưa dữ liệu nhạy cảm vào payload. Sử dụng HTTPS trong production.
JWT so với xác thực dựa trên session?
JWT không trạng thái — server không lưu dữ liệu session, lý tưởng cho microservices và kịch bản cross-domain. Session cần lưu trữ phía server nhưng cho phép thu hồi ngay lập tức.
JWT có phù hợp cho đăng xuất và quản lý session?
JWT không trạng thái theo thiết kế, nên đăng xuất cần cơ chế bổ sung như danh sách chặn hoặc token ngắn hạn kèm refresh token. Sử dụng access token ngắn hạn (ví dụ 15 phút).
Mô hình refresh token hoạt động với JWT như thế nào?
Dùng access token ngắn hạn (JWT) cho lời gọi API và refresh token dài hơn để lấy access token mới. Khi access token hết hạn, client gửi refresh token để nhận JWT mới.
Thuật toán "none" là gì?
Thuật toán "none" nghĩa là JWT không được ký. Chỉ dùng cho mục đích thử nghiệm. Nhiều thư viện vô hiệu hóa nó theo mặc định.
JWT có giới hạn kích thước không?
JWT không có giới hạn kích thước cố định, nhưng vì được gửi trong header HTTP, nên giữ dưới 4KB. Giữ payload tối giản.
Cách sử dụng Tạo JWT
Tạo JSON Web Token đã ký với header, payload và secret hoặc key tùy chỉnh. Chọn HS256/384/512, RS256/384/512 hoặc ES256/384/512 — mọi thứ được tạo cục bộ trong trình duyệt của bạn.
- Chọn thuật toán trong menu thả xuống: HS256, HS384 hoặc HS512 cho secret dùng chung, RS256/384/512 hoặc ES256/384/512 cho cặp khóa, hoặc 'none' cho token chưa ký.
- Chỉnh sửa JSON của header và payload, ví dụ thêm các claim như sub, iss và exp.
- Nhập secret của bạn (cho thuật toán HS*) hoặc dán private key (cho thuật toán RS* và ES*).
- Tạo token và sao chép JWT kết quả — phân tách bằng dấu chấm — vào các yêu cầu hoặc bài kiểm thử API của bạn.
'none' tạo ra token chưa ký mà hầu hết server sẽ từ chối — chỉ dùng để gỡ lỗi.
Công cụ liên quan
- Giải mã JWT Giải mã JWT trực tuyến miễn phí. Giải mã tức thì JSON Web Tokens để xem header, payload và chữ ký. Không cần đăng ký.
- Kiểm tra Hash Tính toán và xác minh hash MD5, SHA-1, SHA-256, SHA-512 cục bộ
- Máy tính Chmod Máy tính chmod trực tuyến miễn phí để trực quan hóa và tính toán quyền tệp Linux với hộp kiểm. Chuyển đổi ngay lập tức giữa ký hiệu số (755, 644) và tượng trưng (rwxr-xr-x). Hỗ trợ quyền đặc biệt như setuid, setgid, sticky bit.
- Bảng ASCII Tham khảo mã hóa ký tự ASCII đầy đủ với mã thập phân, thập lục phân, bát phân, nhị phân, thực thể HTML và mô tả ký tự. Tìm kiếm và lọc tức thì.
- Trình xem Hex Xem nội dung tệp ở định dạng hex dump với tìm kiếm, điều hướng offset và cuộn ảo
- Trình kiểm tra yêu cầu HTTP Kiểm tra API REST trực tiếp trong trình duyệt. Gửi yêu cầu GET, POST, PUT, DELETE với header, body và tham số tùy chỉnh. Xem trạng thái, header và body JSON phản hồi ngay lập tức.
- Trình tạo .htaccess Tạo quy tắc .htaccess Apache cho chuyển hướng, viết lại, tiêu đề bảo mật, bộ nhớ đệm và hơn thế nữa.
- Trình tạo Robots.txt Trình tạo robots.txt trực tuyến miễn phí. Tạo và tùy chỉnh tệp robots.txt để kiểm soát việc thu thập dữ liệu của công cụ tìm kiếm, quản lý quyền truy cập của trình thu thập và tối ưu hóa SEO cho trang web của bạn.