Skip to content

认证模型:Session、Cookie、Token 与前端存储边界

主题边界

  • 认证模型本质上在回答:身份状态由谁持有、浏览器如何携带、服务端如何校验、前端如何降低攻击面。
  • Session、Cookie、Token 是三个不同层级的概念,不应混成一句“token 放 cookie 里”。

机制与流程

  • Session 通常表示服务端维护的会话状态,Cookie 是浏览器自动携带的小型键值对介质,Token 是可用于鉴权的凭证载体。
  • Cookie + Session 常见于服务端会话模型;Token 常见于无状态接口,但最终仍要决定它通过 Header、Cookie 还是其他通道传递。
  • HttpOnlySecureSameSite 等 Cookie 属性决定凭证暴露面和浏览器携带条件。

关键差异

  • Session 解决的是会话状态归属,Cookie 解决的是浏览器自动携带,Token 解决的是凭证表达和校验方式,三者不是互斥同层概念。
  • 把 Token 放在 Authorization Header 和放在 HttpOnly Cookie,各自面向的攻击面和跨域复杂度不同。

边界条件

  • 不存在“Token 放哪就绝对安全”的银弹;要同时考虑 XSS、CSRF、刷新策略、失效控制和多端兼容。
  • 前端只能减少凭证暴露面,真正的权限边界仍在服务端验证和业务授权。

工程落点

  • 真实系统里,认证设计经常和跨域、刷新 Token、单点登录、多标签页同步和登出传播联动出现。
  • 这道题如果能把介质、携带方式、攻击面和工程复杂度一起讲清,就已经很扎实。

相关主题