各管什么
Cookie 是浏览器存的一小段键值,每次请求自动带上是身份凭证的载体。Session 是服务端保存的用户状态,通常只把一个随机 session id 放进 Cookie,真正的用户数据在服务端。
登录流程
- 用户登录,服务端校验密码后创建 session,存
user_id; - 把 session id 写入 Cookie 返回;
- 之后每次请求,浏览器带上 Cookie,服务端用 id 查到用户。
JWT 不是 Session
JWT 把状态编码进令牌本身(自带签名),服务端可不查库。它适合无状态服务,但吊销难,令牌在有效期内一直有效,无法像 session 那样随手删除。
Cookie 安全标记
- HttpOnly:禁止 JS 读取,防 XSS 偷令牌;
- Secure:只走 HTTPS;
- SameSite:限制跨站携带,缓解 CSRF。
动手试试
生成强会话密钥:密码生成器。