本教程以GitHub登录为例,其他社交登录以此类推即可。 ### 1.添加hosts解析 修改本地hosts,添加如下解析: ![503.png](https://s2.ax1x.com/2019/12/02/QmL72d.png) ### 2.到GitHub申请client 打开:https://github.com/settings/developers,点击new OAuth app: ![504.png](https://s2.ax1x.com/2019/12/02/QmLxIS.png) ![505.png](https://s2.ax1x.com/2019/12/02/QmOCxs.png) 填写好后,点击Register application即可。申请好后,可以看到client id和client secret: ![506.png](https://s2.ax1x.com/2019/12/02/QmOreP.png) ### 3.到Nacos中添加配置: 修改febs-auth-dev.yaml配置: ![507.png](https://s2.ax1x.com/2019/12/02/QmOnG4.png) 填写Client id 、client secret和redirect-url(就是前面申请填写的回调地址),填写好后,点击发布即可,然后重启febs-auth服务。 ### 4.修改febs-cloud-web ![508.png](https://s2.ax1x.com/2019/12/02/QmOIe0.png) 修改好后启动febs-cloud-web。 ### 5.测试效果 打开登录页,点击其他登录方式,选择第三方登录: ![509.png](https://s2.ax1x.com/2019/12/02/QmOXl9.png) 点击GitHub图标,会弹出GitHub登录页面: ![510.png](https://s2.ax1x.com/2019/12/02/QmXpTK.png) 点击授权后: ![511.png](https://s2.ax1x.com/2019/12/02/QmXkSH.png) 因为当前GitHub账号并没有关联系统用户,所以会弹出这个提示框,你有两个选择: 1.绑定现有的系统用户; 2.如果你没有系统用户账号,那么可以选择“注册并登录”。 这里我们选择“绑定并登录”: ![512.png](https://s2.ax1x.com/2019/12/02/QmXMtS.png) 输入mrbird,123456,然后点击“绑定并登录”按钮就可,如果你输入的用户名和密码正确的话,系统会完成绑定并登录: ![513.png](https://s2.ax1x.com/2019/12/02/QmX1pQ.png) 下次再用该github账号登录的话,系统就可以直接进去了,不用再绑定了。 ### 6.解绑与重新绑定 切换到个人中心: ![514.png](https://s2.ax1x.com/2019/12/02/QmXt00.png) 因为当前账号已经绑定了GitHub,随意GitHub会是彩色的(因为github本身是黑色的,所以几乎没什么区别⊙﹏⊙∥)。其他社交账号没有绑定,所以是灰色的。 点击github图标,可以直接进行解绑操作: ![515.png](https://s2.ax1x.com/2019/12/02/QmXsXR.png) ![516.png](https://s2.ax1x.com/2019/12/02/QmX6n1.png) 解绑后,再次点击GitHub图标,可以进行重新绑定: ![517.png](https://s2.ax1x.com/2019/12/02/QmX49e.png) 规则: 1.一个社交帐户只能绑定一个系统用户; 2.一个系统账户可以绑定多个同类型的社交账号。 ### 7.其他社交账client id、client secret申请地址: QQ:[https://connect.qq.com/manage.html](https://connect.qq.com/manage.html),比较麻烦,需要有已经备案的服务器和域名。 Gitee:[https://gitee.com/oauth/applications](https://gitee.com/oauth/applications),简单,申请过程和github类似。 钉钉:[https://open-dev.dingtalk.com/#/loginMan ](https://open-dev.dingtalk.com/#/loginMan ) 腾讯云:[https://dev.tencent.com/user/account/setting/applications](https://dev.tencent.com/user/account/setting/applications),实际上就是coding,过程也较简单; 微软:[https://dev.tencent.com/user/account/setting/applications](https://dev.tencent.com/user/account/setting/applications),回调地址必须是https的,所以本地没办法模拟。