集成OAuth2登录
🌐 OAuth2 登录集成指南
✅ 支持版本:v1.5( 2024 年 5 月发布) 本功能适用于已有统一登录平台(如 MaxKey、Authing、Keycloak 等)的组织。
🧾 1. 申请 OAuth2 应用
请在 统一身份认证平台 中创建应用,并记录以下信息:
client-id(客户端 ID)client-secret(客户端密钥)授权地址(authorize URL)Token 获取地址(token URL)用户信息地址(user info URL)
📌 当前仅支持
authorization_code模式 如果你们尚未部署统一登录平台,则暂不支持此集成方式。

⚙️ 2. 修改系统配置
打开 tduck-api/src/main/resources/application.yml,配置如下内容:
oauth2:
client:
client-id: 979790611596967936 # 从统一登录平台申请
client-secret: 6oGqMjIwNDIwMjQxNDE5MTEwNjYxnm
redirect-url: http://127.0.0.1:8996/tduck-api/oauth2/callback # OAuth2 回调地址
web-url: http://127.0.0.1:8888/loginSuc # 前端登录成功跳转地址
scope: all # 权限范围(根据平台定义)
server:
authorization-url: http://sso.maxkey.top/sign/authz/oauth/v20/authorize
token-url: http://sso.maxkey.top/sign/authz/oauth/v20/token
user-info-url: http://sso.maxkey.top/sign/api/oauth/v20/me
user-name-attribute: username # 从 user-info 接口获取的唯一账号字段名
📝 注意:
redirect-url应为你后端部署地址 +/tduck-api/oauth2/callbackweb-url是前端项目地址 +/loginSuc(固定)
🖥️ 3. 启动并访问前端
重启项目后,访问前端页面:
http://127.0.0.1:8888/
点击登录按钮 → 自动跳转至统一登录平台进行授权登录。
🔍 4. 源码位置说明
如需修改 OAuth2 逻辑或扩展行为(例如自动注册、角色绑定等),请查看以下路径下的代码:
tduck-x-platform
└── tduck-framework
└── tduck-security
└── src/main/java/com/tduck/cloud/security/oauth2
主要涉及类:
OAuth2AuthenticationFilterOAuth2LoginSuccessHandlerOAuth2UserInfoService
💡 提示建议
- 若统一登录平台提供
roles等字段,可扩展自动赋权逻辑;