马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

SpringBootSecurity学习(26)前后端分离版之github单点登录

[复制链接]
查看2088 | 回复0 | 2019-10-24 09:49:05 | 显示全部楼层 |阅读模式

单点登录(SSO)

关于oauth2.0,末了我们再来学习一下单点登录。前面介绍过单点登录的定义,单点登录(Single Sign On),简称为 SSO,是现在比力盛行的企业业务整合的办理方案之一。SSO的定义是在多个应用体系中,用户只需要登录一次就可以访问全部相互信任的应用体系。

关于单点登录,springcloud G版本的官方文档所在如下:

  • https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html#_single_sign_on

关于单点登录的例子有很多,最常见的就是我们在百度登录以后,百度网盘,百度知道,百度翻译等功能网站都会主动登录百度的账号,另有就是qq或者微信登录以后,其它腾讯的游戏等app也可以一键登录,等等。例子有很多。对于第三方授权的应用,不需要利用单点登录,但是对于同一个企业内的差别服务和软件之间的账号共享来说,单点登录是一个须要的功能。

SSO简朴利用github实现

spring cloud oauth对sso是有支持的,而且利用和设置非常简朴。可以利用第三方的授权服务,如GitHub,也可以本身构建授权服务。下面来用github实现一个简朴的sso。

起首要去github上面登记一下,所在如下:

  • https://github.com/settings/applications/new

这里我们不再本身去登记,而是利用官方文档中演示的登记好的id和秘钥:

094905y775onn4z2ydnm2p.jpg

clientId和clientSecret分别是:

  • bd1c0a783ccdd1c9b9e4

  • 1a9030fbca47a5b2c28e92f19050bb77824b5ad1

而sso客户端的设置正如上面图片演示的一样。下面来新建两个项目,依靠只引入web和oauth:

094906brq3fz973yfc9bxc.jpg

项目标启动类中需要参加一个@EnableOAuth2Sso注解:

094906wstchfyya0s0de7z.jpg

创建两个简朴的接口:

094906e7l1m7nke6xh051k.jpg

末了就是设置文件的设置,基本上内容和官网的示例一样:

094907nknndqozyao1ydyp.jpg

这里两个项目基本一样,另一个项目标代码和设置也是一样。security不写任何设置类,利用默认即可。

测试

启动两个项目,访问此中一个的/user接口:

094907m1b7b7kovdurdgcz.jpg

会直接跳转到github的登录页面:

094907qewz7bpp599058zp.jpg

可以留意看一下上面所在栏中的所在,会非常熟悉。这里可以输入本身的github账号,然后点击登录,就会主动回跳到我们原来访问的/user所在:

094908ers4hsz22sjsq22j.jpg

可以看到,我们本身的项目主动登录成功了,并返回了当前的用户数据,这个用户实在就是github的账户。

如今上面的第一个项目已经登录成功,并访问了接口,下面来直接访问第二个项目:

094908lz6i85amxx8m18zd.jpg

可以看到第二个项目并没有再跳转登录,而是直接处于登录状态,而且账号信息与前面项目标一样。这就是简朴sso的演示。

代码所在: https://gitee.com/blueses/spring-boot-security 37 38

本文由博客一文多发平台 OpenWrite 发布!







来源:https://www.cnblogs.com/guos/p/11728229.html
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则