Backend nền tảng
F5 · JWT, Session và OAuth2
JWT: stateless, header.payload.signature; client giữ token, server xác thực chữ ký.
F5 · Middle · cốt lõi
Session: gửi áo ở quầy, cầm thẻ số (server nhớ). JWT: vé có dấu mộc, ai cũng tự kiểm được (server không cần nhớ). OAuth2: nhờ Google xác nhận hộ bạn là ai.
Cốt lõi
- JWT: stateless, header.payload.signature; client giữ token, server xác thực chữ ký.
- Session: stateful; server lưu SID (Memory/Redis), client giữ cookie.
- OAuth2: luồng ủy quyền User → App → Auth Server → Code → Token (authorization code grant).
Đánh đổi
JWT dễ scale nhưng khó thu hồi. Session dễ thu hồi nhưng cần store chung.
Trong thực tế
JWT cho microservices (Netflix); Session bằng Redis (Amazon); OAuth2 = đăng nhập Google/GitHub.
Bug thường gặp
Cấp JWT hạn 30 ngày; tài khoản bị khóa vẫn gọi API được đến khi token hết hạn.
Tự hỏi lại
Logout với JWT làm thế nào? (token ngắn hạn + blacklist/refresh token).