最终登录链路

一次登录如何走完全链路

把前面所有能力串起来,一次典型登录可以这样发生:

生产级完整登录链路

用户提交账号密码或选择第三方登录

认证服务验证凭证,检查账号状态

步骤 1 · 动作密码 / 第三方身份,检查冻结与风险

风险较高时触发 MFA

步骤 2 · 判断TOTP / WebAuthn / 恢复码

登录成功:创建会话,签发 Access / Refresh

步骤 3 · 动作会话记录设备与过期时间

客户端后续请求携带 Access Token

步骤 4 · 动作短期有效,每次请求验证

Access 过期后用 Refresh 换新

步骤 5 · 动作轮换 + 可撤销 + 设备绑定

改密 / 冻结 / 异常时撤销相关会话

步骤 6 · 判断版本号 + 会话撤销,快速收权

所有操作写入审计日志

步骤 7 · 结果登录 / 刷新 / 撤销 / MFA 全记录
信任被建立、延续、提升、收回并留下证据

这条链路的四个关键词

  • 建立:凭证验证通过 → 信任开始。
  • 延续:会话 + Refresh Token 让信任延续,而不是每次重来。
  • 提升:MFA 和风控在风险场景提升信任等级。
  • 收回 / 追踪:撤销让信任失效,审计让信任可还原。

关键路径上的性能

登录链路是关键路径,多一步就多一次延迟。几个优化点:

  • 密码哈希用合理 cost(太高拖慢登录,太低不安全)。
  • 会话存 Redis,刷新链路尽量一次查询。
  • 审计日志异步写入,不阻塞登录响应。

兜底与降级

生产环境必须想清楚「挂了怎么办」:

  • MFA 服务不可用:降级为临时提高风险等级 / 放行并告警,而不是全部卡死。
  • 令牌服务密钥轮换:支持平滑切换,避免业务中断。
  • 认证中心(IdP)不可用:业务系统要有降级策略(如保留短期本地会话),并告警。

下一节是上线前的最后一道检查:把前面所有要点收成清单。

发现内容有问题?

告诉我们哪里需要改进。