认证流程图:程序员高效通关技术面试的秘诀
大家好,我是程序员老王。今天想和大家聊聊技术面试中那个让人又爱又怕的环节——认证流程图。无论是大厂还是独角兽,系统设计题里画个认证授权流程图几乎是必考题。别慌,掌握核心逻辑和关键组件,你也能轻松应对!
📥 福利先行:2025年Java面试高频宝典(含认证系统设计真题)
链接: https://pan.baidu.com/s/1RUVf75gmDVsg8MQp4yRChg?pwd=9b3g
提取码: 9b3g (建议保存备用)
一、面试官为什么总问认证流程图?
面试官抛出认证流程图问题,本质是考察:
- 系统边界意识:能否清晰划分用户、客户端、服务端、第三方认证平台(如OAuth2.0中的授权服务器);
- 安全敏感度:对Token传递、加密方式、防CSRF/XSS攻击的考量;
- 协议理解深度:是否吃透OAuth2.0四种模式或JWT工作流的适用场景。
比如单页应用(SPA)要用隐式授权模式,而服务端应用首选授权码模式。搞错模式直接扣分!
二、手撕认证流程图的4个核心步骤
步骤1:用户发起登录请求
用户在前端输入账号密码,点击登录。此时前端必须用HTTPS将凭证加密传输到网关。
✅ 高频考点:为什么不能用HTTP? → 答明文传输风险,中间人攻击可截获密码。

(认证流程图中的请求发起阶段示意图)
步骤2:认证服务器核验身份
网关将请求路由到认证服务,这里完成三件事:
- 校验密码哈希值(别存明文!)
- 查询用户权限角色(RBAC必备)
- 生成访问令牌(Access Token)和刷新令牌(Refresh Token)
🔥 关键细节:JWT该包含哪些Claim?
→ 标准字段:sub(用户ID), exp(过期时间), iss(签发者)
→ 业务字段:role(角色), perms(细粒度权限)
步骤3:令牌下发与存储
认证服务返回Token给前端。前端如何存Token?
access_token:存内存或SessionStorage(防XSS)refresh_token:存HttpOnly Cookie(防CSRF)
sequenceDiagram
participant 前端
participant 认证服务
前端->>认证服务: 发送用户名/密码
认证服务->>认证服务: 校验+生成Token
认证服务-->>前端: 返回access_token+refresh_token
前端->>前端: access_token存SessionStorage
前端->>浏览器: refresh_token存HttpOnly Cookie
步骤4:资源访问与令牌刷新
前端携带access_token请求业务接口,网关层通过鉴权服务校验Token有效性。
⏰ 当access_token过期时,前端自动用refresh_token申请新Token:

(令牌刷新流程关键点)
三、避坑指南:90%候选人踩的雷
-
单点登录(SSO)流程混乱
记住核心:中央认证,令牌广播。用户登录一次,认证中心通知各子系统更新会话状态。 -
OAuth2.0和JWT概念混淆
OAuth2.0是授权框架,JWT是令牌格式!JWT常用于实现OAuth2.0的Token。 -
忽略Refresh Token的防篡改
一定要给Refresh Token绑定设备指纹或IP,否则泄露后果严重!
四、如何高效准备这类面试题?
- 动手画图:用draw.io反复练习认证流程图,直到能3分钟默画核心路径;
- 场景化记忆:区分App/Web/小程序不同客户端的认证差异;
- 真题实战:用《2025 Java面试宝典》里的认证设计题自测(文首网盘已分享)。
💡 小技巧:如果大家需要购买面试鸭会员,可以通过面试鸭返利网找我,额外返利25元!用会员题库练手,面试直接降维打击。
五、总结:认证流程图的本质
认证流程图的核心永远是安全与效率的平衡。抓住“凭证传递不断链,权限校验不漏网”两个原则,再结合具体协议特性,面试时你就能给出让考官眼前一亮的答案。
最后放一张完整流程示意图,建议保存:

有疑问欢迎在面试鸭返利网交流讨论。下期我们拆解“秒杀系统设计”,不见不散!


