身份认证方案
| 鉴权方案 | 流程 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Session-Cookie |
→ 登录 → 服务端创建Session → 返回SessionID → Cookie存储 → 后续请求携带 |
服务端可控,可随时撤销 成熟稳定,框架支持好 安全性较高(敏感信息在服务端) |
服务端需存储Session(内存/Redis) 分布式环境需Session共享 跨域处理复杂 移动端支持不友好 |
传统Web应用 管理后台 |
|
JWT (JSON Web Token) |
→ 登录 → 签发JWT → 客户端存储 → 请求Header携带 → 服务端验证签名 |
无状态,服务端不存储 天然支持分布式 跨域友好 移动端友好 |
无法主动撤销(除非配合黑名单) Token较大,增加传输开销 续期方案复杂 |
微服务 前后端分离 移动应用 |
| OAuth 2.0 |
→ 第三方授权 → 获取授权码 → 换取Access Token → 访问资源 |
标准化协议 支持第三方授权 权限粒度细 |
实现复杂 需要授权服务器 |
开放平台 第三方登录 资源授权 |
| SSO (单点登录) |
常见实现: CAS、 SAML、 OAuth2.0 |
一次登录,多系统访问 统一用户管理 |
架构复杂 单点故障风险 |
企业内部多系统 |
| API Key / Secret |
→ 分配Key → 请求签名 → 服务端验证 |
简单直接 适合机器对机器 |
安全性依赖传输层 缺乏用户上下文 |
开放API 服务间调用 |