Appearance
认证模型:Session、Cookie、Token 与前端存储边界
主题边界
- 认证模型本质上在回答:身份状态由谁持有、浏览器如何携带、服务端如何校验、前端如何降低攻击面。
- Session、Cookie、Token 是三个不同层级的概念,不应混成一句“token 放 cookie 里”。
机制与流程
- Session 通常表示服务端维护的会话状态,Cookie 是浏览器自动携带的小型键值对介质,Token 是可用于鉴权的凭证载体。
- Cookie + Session 常见于服务端会话模型;Token 常见于无状态接口,但最终仍要决定它通过 Header、Cookie 还是其他通道传递。
HttpOnly、Secure、SameSite等 Cookie 属性决定凭证暴露面和浏览器携带条件。
关键差异
- Session 解决的是会话状态归属,Cookie 解决的是浏览器自动携带,Token 解决的是凭证表达和校验方式,三者不是互斥同层概念。
- 把 Token 放在 Authorization Header 和放在 HttpOnly Cookie,各自面向的攻击面和跨域复杂度不同。
边界条件
- 不存在“Token 放哪就绝对安全”的银弹;要同时考虑 XSS、CSRF、刷新策略、失效控制和多端兼容。
- 前端只能减少凭证暴露面,真正的权限边界仍在服务端验证和业务授权。
工程落点
- 真实系统里,认证设计经常和跨域、刷新 Token、单点登录、多标签页同步和登出传播联动出现。
- 这道题如果能把介质、携带方式、攻击面和工程复杂度一起讲清,就已经很扎实。