欢迎来到本站
0

三方登录

2023.07.28 | along | 12350次围观

三方登录

系统对接国内多个第三方平台,实现三方登录的功能。例如说:

  • 管理后台:企业微信、阿里钉钉

  • 用户 App:微信公众号、微信小程序

管理后台

友情提示:为了表述方便,本文主要使用管理后台的三方登录作为示例。

用户 App 也是支持该功能,你可以自己去体验一下。

#1. 表结构

① 三方登录完成时,系统会将三方用户存储到 system_social_user (opens new window)表中,通过 type (opens new window)标记对应的第三方平台。

② 【未】关联本系统 User 的三方用户,需要在三方登录完成后,使用账号密码进行「绑定登录」,成功后记录到 system_social_user_bind (opens new window)表中。

【已】关联本系统 User 的三方用户,在三方登录完成后,直接进入系统,即「快捷登录」。

#2. 绑定登录

① 使用浏览器访问 http://127.0.0.1:1024/login (opens new window)地址,点击 [钉钉] 或者 [企业微信] 进行三方登录。此时,会调用 /admin-api/system/auth/social-auth-redirect (opens new window)接口,获得第三方平台的登录地址,并进行跳转。

三方登录

然后,使用 [钉钉] 或者 [企业微信] 进行扫码,完成三方登录。

② 三方登录成功后,跳转回 http://127.0.0.1:1024/social-login (opens new window)地址。此时,会调用 /admin-api/system/auth/social-login (opens new window)接口,尝试「快捷登录」。由于该三方用户【未】关联管理后台的 AdminUser 用户,所以会看到 “未绑定账号,需要进行绑定” 报错。

三方登录页

③ 输入账号密码,点击 [提交] 按钮,进行「绑定登录」。此时,会调用 /admin-api/system/auth/login (opens new window)接口(在账号密码登录的基础上,额外带上 socialType + socialCode + socialState 参数)。成功后,即可进入系统的首页。

三方登录页

#3. 快捷登录

退出系统,再进行一次三方登录的流程。

【相同】① 使用浏览器访问 http://127.0.0.1:1024/login (opens new window)地址,点击 [钉钉] 或者 [企业微信] 进行三方登录。此时,会调用 /admin-api/system/auth/social-auth-redirect (opens new window)接口,获得第三方平台的登录地址,并进行跳转。

三方登录

【不同】② 三方登录成功后,跳转回 http://127.0.0.1:1024/social-login (opens new window)地址。此时,会调用 /admin-api/system/auth/social-login (opens new window)接口,尝试「快捷登录」。由于该三方用户【已】关联管理后台的 AdminUser 用户,所以直接进入系统的首页。

三方登录页

#4. 绑定与解绑

访问 http://127.0.0.1:1024/user/profile (opens new window)地址,选择 [社交信息] 选项,可以三方用户的绑定与解绑。

绑定与解绑

#5. 配置文件

在 application-{env}.yaml (opens new window)配置文件中,对应 justauth 配置项,填写你的第三方平台的配置信息。

配置文件

系统使用 justauth-spring-boot-starter (opens new window)JustAuth (opens new window)组件,想要对接其它第三方平台,只需要新增对应的配置信息即可。

疑问:yudao-spring-boot-starter-biz-social 技术组件的作用是什么?

yudao-spring-boot-starter-biz-social (opens new window)对 JustAuth 进行二次封装,提供微信小程序的集成。

#6. 第三方平台的申请

注意,如果第三方平台如果需要配置具体的授信地址,需要添加 /social-login 用于三方登录回调页、/user/profile 用于三方用户的绑定与解绑。


版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。

发表评论