# 社交登录(forge-starter-social) 基于 JustAuth 的第三方社交登录模块,支持微信、钉钉、GitHub、Gitee 等 18+ 平台。 ## 快速开始 ### 1. 引入依赖 ```xml com.mdframe.forge forge-starter-social ``` ### 2. 配置 ```yaml forge: social: enabled: true callbackPrefix: "" autoRegister: true # 首次登录自动注册用户 defaultRoleIds: [0] # 新用户默认角色 ID ``` ### 3. 在数据库中配置社交平台 在 `sys_social_config` 表中添加平台配置(clientId、clientSecret、redirectUri 等)。 ## 支持的平台 | 平台 | Code | 说明 | |------|------|------| | 微信开放平台 | `WECHAT_OPEN` | 网站微信扫码登录 | | 微信公众号 | `WECHAT` | 微信公众号授权 | | 微信小程序 | `WECHAT_MINI` | 微信小程序登录 | | 钉钉 | `DINGTALK` | 钉钉扫码登录 | | 企业微信 | `WECHAT_ENTERPRISE` | 企业微信授权 | | 飞书 | `FEISHU` | 飞书授权登录 | | GitHub | `GITHUB` | GitHub OAuth | | Gitee | `GITEE` | Gitee OAuth | | QQ | `QQ` | QQ 互联 | | 微博 | `WEIBO` | 微博 OAuth | | 支付宝 | `ALIPAY` | 支付宝授权 | | 百度 | `BAIDU` | 百度 OAuth | | Google | `GOOGLE` | Google OAuth | | Facebook | `FACEBOOK` | Facebook OAuth | | Twitter | `TWITTER` | Twitter OAuth | | 小米 | `XIAOMI` | 小米 OAuth | | 华为 | `HUAWEI` | 华为 OAuth | | 自定义 | `CUSTOM` | 自定义平台 | ## 核心功能 ### 社交登录流程 ``` 用户扫码/授权 → 跳转到回调地址 → SocialController 处理回调 → 调用 JustAuth 获取用户信息 → 查找/创建本地用户 → 绑定社交账号 → 登录成功 ``` ### 数据库表 | 表名 | 说明 | |------|------| | `sys_user_social` | 用户社交账号绑定关系表 | | `sys_social_config` | 社交平台配置表(clientId、clientSecret 等) | ### `SysUserSocial` 实体 | 字段 | 说明 | |------|------| | `userId` | 本地用户 ID | | `platform` | 社交平台(SocialPlatform 枚举) | | `uuid` | 第三方平台用户唯一标识 | | `username` | 第三方用户名 | | `nickname` | 第三方用户昵称 | | `avatar` | 第三方用户头像 | | `email` | 第三方用户邮箱 | | `accessToken` | 访问令牌 | | `refreshToken` | 刷新令牌 | | `expireTime` | Token 过期时间 | | `bindTime` | 绑定时间 | ### REST API | 方法 | 路径 | 说明 | |------|------|------| | GET | `/social/auth/{platform}` | 发起社交登录,返回授权 URL | | GET | `/social/callback/{platform}` | 第三方回调处理 | | GET | `/social/bindings` | 获取当前用户的社交账号绑定列表 | | POST | `/social/bind` | 绑定社交账号 | | DELETE | `/social/unbind/{platform}` | 解绑社交账号 | | GET | `/social/config` | 获取社交平台配置列表 | | PUT | `/social/config` | 更新社交平台配置 | ## 动态配置 社交平台配置存储在数据库中,支持 `@RefreshScope` 动态刷新,无需重启服务。 ## 核心组件 | 组件 | 说明 | |------|------| | `SocialAuthRequestFactory` | 根据平台创建 `AuthRequest`(JustAuth) | | `ISocialUserService` | 社交用户服务接口 | | `SocialUserServiceImpl` | 社交用户服务实现 | | `SocialController` | 社交登录 REST 接口 | | `SocialConfigController` | 社交平台配置管理接口 | | `SocialPlatform` | 平台枚举类 | | `SysSocialConfig` | 平台配置实体 | | `SysUserSocial` | 用户社交绑定关系实体 |