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

单点登录(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和秘钥:

file

clientId和clientSecret分别是:

  • bd1c0a783ccdd1c9b9e4

  • 1a9030fbca47a5b2c28e92f19050bb77824b5ad1

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

file

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

file

创建两个简单的接口:

file

最后就是配置文件的配置,基本上内容和官网的示例一样:

file

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

测试

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

file

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

file

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

file

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

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

file

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

注意:示例34,35,36为使用spring cloud oauth2 实现的sso

代码地址: https://gitee.com/blueses/spring-boot-security 37 38

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
前后端分离单点登录中,我们可以采用一些方法来解决一些问题。首先,我们可以使用token来代替全局的明文传递的URL。通过在用户登录后生成一个token,并将其存储在后端,然后将该token返回给前端,前端在进行请求时携带该token进行验证。这样做可以避免直接在URL中传递token,增加了安全性。 其次,在前后端分离的情况下,前端已经不存在session会话了,因此可以考虑使用cookie来存储登录信息。在用户登录成功后,将相关信息存储在cookie中,并设置cookie的安全属性,如httponly和secure,以增加安全性。对于内网项目,可以不考虑https协议,但对于外网项目,必须使用https协议来保护cookie的安全性。 以上是在前后端分离单点登录中解决问题的一些方法,可以根据具体情况选择适合的方法来实现单点登录功能。具体的实现细节可以参考相关的源码,如https://github.com/xjs1919/enumdemo下的sso-static。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [前后端分离如何做SSO单点登录?](https://blog.csdn.net/goldenfish1919/article/details/100169368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [前后端分离 单点登录SSO 纯前端实现单点登录SSO](https://blog.csdn.net/fay462298322/article/details/54963716)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值