Backend nền tảng
F6 · Bên trong một JWT
base64(header).base64(payload).signature.
F6 · Junior
Một phong bì trong suốt có con dấu: ai cũng đọc được nội dung, nhưng không ai sửa được mà không làm hỏng dấu.
Cốt lõi
- base64(header).base64(payload).signature.
- Login → server cấp Access token (ngắn, ~15 phút) + Refresh token (dài, ~7 ngày, xoay vòng).
- Payload chỉ mã hóa base64, KHÔNG bí mật → không để mật khẩu/dữ liệu nhạy cảm.
Đánh đổi
Giảm truy vấn DB khi xác thực; đổi lại token lộ thì dùng được đến khi hết hạn.
Trong thực tế
Xác thực API, mobile app.
Bug thường gặp
Để thông tin nhạy cảm trong payload vì tưởng JWT được mã hóa; hoặc server không kiểm tra chữ ký/thuật toán của token.
Tự hỏi lại
HS256 vs RS256? Lưu token ở localStorage hay cookie HttpOnly?