Trung BìnhNode.js iconNode.js

JWT (JSON Web Token) là gì? Cấu trúc của JWT?

JWT gồm header.payload.signature (base64url-encoded) — stateless, không cần lưu session; nhưng không thể revoke trước hạn nên access token phải ngắn (15 phút) kết hợp refresh token.

  • JWT là chuẩn mở (RFC 7519) để truyền thông tin an toàn dưới dạng JSON, được ký số để đảm bảo tính toàn vẹn.
  • Gồm 3 phần ngăn cách bởi dấu chấm, mỗi phần base64url-encoded: Header ({alg: 'HS256', typ: 'JWT'}), Payload (claims như {sub: userId, exp: timestamp, role: 'admin'}), Signature (HMAC của header+payload bằng secret key).
  • Ưu điểm stateless: server không cần lưu session, chỉ cần verify signature — phù hợp microservices và horizontal scaling.
  • Nhược điểm quan trọng: không thể revoke JWT trước khi hết hạn (không có centralized blacklist), nên access token phải có exp ngắn (15 phút) kết hợp refresh token.

Pitfall phổ biến nhất: lưu JWT trong localStorage thay vì httpOnly cookie — dễ bị XSS đánh cắp.

Xem toàn bộ Node.js cùng filter theo level & chủ đề con.

Mở danh sách Node.js