先看 SSO 效果 → 理解 OAuth2 流程 → AI 实现统一认证登录
oauth-login.html
密码 / 短信 / 企业 Tab
前后端联动
密码登录 + 短信登录
企业登录(两步流程)
Sa-Token 会话管理
authorize + token 接口
第三方跳转认证中心
SSO 单点登录
AI 生成接入指南
接口参数 + 调用示例
一份文档搞定对接
动手写认证代码之前,先看完整的单点登录效果(点击图片可放大)
Step 1:第三方应用 kangke.xyz:19999,点击右上角"登录"
Step 2:选择"统一身份登录" → 跳转认证中心
Step 3:统一认证中心,输入手机号+密码登录
Step 4:登录成功!自动跳回第三方,右上角显示用户名
appid=KK7908440916616 → 标识第三方应用redirect_uri → 登录成功后跳回的地址scope=userinfo → 申请的用户信息范围state → 防 CSRF 攻击的随机值
?code=AUTH...redirect_uri?code=xxx结合刚才的演示,理解完整的 OAuth2 授权码流程(点击图片可放大)
/oauth2/authorize?appid=xxx&redirect_uri=xxx&scope=userinfo&state=xxxredirect_uri?code=AUTH_xxx&state=xxxResource Owner = 用户Client = 第三方应用Authorization Server = UAS 认证中心
登录页面是用户看到的第一个页面,也是三种登录方式的入口
appid, redirect_uri, scope, state,登录成功后将这些参数传递给后端,后端生成授权码后跳回 redirect_uri/oauth2/authorize,未登录则重定向到此页面static/ 下,无需额外部署前端项目,保持架构简单。
u_user 表 → BCrypt 比对StpUtil.login(userId) → 记录日志
Key: sms:手机号
Value: 6位随机数
过期: 5分钟
短信 API 可能慢,异步发送让用户无需等待。
队列: sms.queue
一个用户可能关联多家企业,所以需要先选择企业再登录。
登录接口跑通后,实现 OAuth2 授权码流程,并让 AI 生成第三方接入文档
navigate_page → 打开登录页take_snapshot → 识别输入框和按钮fill → 填入用户名/手机号和密码click → 点击登录list_network_requests → 检查 API 响应take_screenshot → 确认登录结果AI 能快速扫描安全漏洞模式。
但业务逻辑错误需要你自己判断。最终决策权在你。
@Anonymous 注解 → 401 未认证@RequestBody)sms:138xxx,校验用 sms:138XXXX0001)核心功能全部跑通。回顾端到端流程,领取 OAuth2/SSO 课后任务。