ibcadmin 发表于 2019-10-24 09:49:05

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

<h1 id="单点登录sso">单点登录(SSO)</h1>
<p>关于oauth2.0,末了我们再来学习一下单点登录。前面介绍过单点登录的定义,单点登录(Single Sign On),简称为 SSO,是现在比力盛行的企业业务整合的办理方案之一。SSO的定义是在多个应用体系中,用户只需要登录一次就可以访问全部相互信任的应用体系。</p>
<p>关于单点登录,springcloud G版本的官方文档所在如下:</p>
<ul>
<li>https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html#_single_sign_on</li>
</ul>
<p>关于单点登录的例子有很多,最常见的就是我们在百度登录以后,百度网盘,百度知道,百度翻译等功能网站都会主动登录百度的账号,另有就是qq或者微信登录以后,其它腾讯的游戏等app也可以一键登录,等等。例子有很多。对于第三方授权的应用,不需要利用单点登录,但是对于同一个企业内的差别服务和软件之间的账号共享来说,单点登录是一个须要的功能。</p>
<h1 id="sso简朴利用github实现">SSO简朴利用github实现</h1>
<p>spring cloud oauth对sso是有支持的,而且利用和设置非常简朴。可以利用第三方的授权服务,如GitHub,也可以本身构建授权服务。下面来用github实现一个简朴的sso。</p>
<p>起首要去github上面登记一下,所在如下:</p>
<ul>
<li>https://github.com/settings/applications/new</li>
</ul>
<p>这里我们不再本身去登记,而是利用官方文档中演示的登记好的id和秘钥:</p>
<p><div align="center"></div></p>
<p>clientId和clientSecret分别是:</p>
<ul>
<li><p>bd1c0a783ccdd1c9b9e4</p></li>
<li><p>1a9030fbca47a5b2c28e92f19050bb77824b5ad1</p></li>
</ul>
<p>而sso客户端的设置正如上面图片演示的一样。下面来新建两个项目,依靠只引入web和oauth:</p>
<p><div align="center"></div></p>
<p>项目标启动类中需要参加一个@EnableOAuth2Sso注解:</p>
<p><div align="center"></div></p>
<p>创建两个简朴的接口:</p>
<p><div align="center"></div></p>
<p>末了就是设置文件的设置,基本上内容和官网的示例一样:</p>
<p><div align="center"></div></p>
<p>这里两个项目基本一样,另一个项目标代码和设置也是一样。security不写任何设置类,利用默认即可。</p>
<h1 id="测试">测试</h1>
<p>启动两个项目,访问此中一个的/user接口:</p>
<p><div align="center"></div></p>
<p>会直接跳转到github的登录页面:</p>
<p><div align="center"></div></p>
<p>可以留意看一下上面所在栏中的所在,会非常熟悉。这里可以输入本身的github账号,然后点击登录,就会主动回跳到我们原来访问的/user所在:</p>
<p><div align="center"></div></p>
<p>可以看到,我们本身的项目主动登录成功了,并返回了当前的用户数据,这个用户实在就是github的账户。</p>
<p>如今上面的第一个项目已经登录成功,并访问了接口,下面来直接访问第二个项目:</p>
<p><div align="center"></div></p>
<p>可以看到第二个项目并没有再跳转登录,而是直接处于登录状态,而且账号信息与前面项目标一样。这就是简朴sso的演示。</p>
<p>代码所在: https://gitee.com/blueses/spring-boot-security 37 38</p>
<blockquote>
<p>本文由博客一文多发平台 OpenWrite 发布!</p>
</blockquote><br><br/><br/><br/><br/><br/>来源:<a href="https://www.cnblogs.com/guos/p/11728229.html" target="_blank">https://www.cnblogs.com/guos/p/11728229.html</a>
页: [1]
查看完整版本: SpringBootSecurity学习(26)前后端分离版之github单点登录