请列举目前常用的登录鉴权方案,并分析每种方案的优缺点。
考察说明
考察候选人对常见登录鉴权方案的了解程度及对比分析能力。
回答思路
- 【回答框架 1】基于会话的认证:用户登录后服务端创建会话并存储会话ID,客户端通过Cookie保存会话ID,后续请求携带该ID进行身份识别。优点是实现简单、状态管理方便;缺点是服务端需要维护会话状态,不利于水平扩展,且Cookie易受CSRF攻击。
- 【回答框架 2】基于令牌的认证:用户登录后服务端签发一个令牌(如JWT),客户端存储令牌并在请求头中携带。优点是服务端无状态、易于扩展,适合前后端分离和移动端;缺点是令牌无法主动失效,需要处理过期和刷新机制,且载荷信息泄露风险需通过签名和加密缓解。
- 【回答框架 3】OAuth 2.0:授权框架,允许第三方应用在用户授权后访问用户资源,常用于开放平台。优点是用户无需共享密码,可精细控制权限范围;缺点是流程复杂,需要维护客户端凭证和令牌端点,且存在授权码劫持等风险。
- 【回答框架 4】SSO(单点登录):多个应用共享一个认证中心,用户只需登录一次即可访问所有关联系统。优点是提升用户体验,减少密码疲劳,便于集中管理;缺点是认证中心成为单点故障,需高可用设计,且不同域之间需信任机制。
- 【关键点 1】会话认证有状态,令牌认证无状态。
- 【关键点 2】JWT适合分布式系统,但需考虑吊销和刷新策略。
- 【关键点 3】OAuth 2.0适用于第三方授权,但实现复杂。
- 【关键点 4】SSO提升体验,但依赖认证中心高可用。
- 【易错点 1】JWT默认不加密,敏感信息不应直接放入payload。
- 【易错点 2】会话认证在分布式环境下需共享会话存储,否则无法跨实例认证。
- 【易错点 3】OAuth 2.0的授权码模式需防范CSRF和重定向劫持。