java---单点登录

关于java单点登录的东西,之前还未毕业的时候学了一些,但是差不多一年过去,忘的也差不多了。前段时间特意找了一个单点登录的视频,又重温了一下。但是这几天回想起来,知识都有点模糊了,所以决定写下这一篇博客,让自己更加清晰一些。

什么是单点登录?

单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。

单点登录是为了解决什么问题而存在的?

1. 当一个大型系统中有多个小项目的时候,用户访问每个小项目都需要登录,很麻烦。例如:淘宝网站登录后,天猫就无需登录

2. 传统项目是通过在服务器保存session,但在使用nigix时,当把一个浏览器的不同请求分发到不同服务器时,就会出现问题了。

怎么实现

将key/value存储到一个第三方的位置,比如redis、mysql等。

value可以用UUID来生成。

key呢? key其实是存在你的cookie中。这样浏览器不同次访问的话,会有相同的key传到后台。

上边这种情况有一种局限性,如果是跨域呢?

如果跨域,那么用cookie来存信息就会有问题了。

那么该怎么解决呢? 就可以用到token,方案是这样的:

1. 用户登录后将在服务器a生成一个key,同时发送token到用户。

2. 用户再拿着token去服务器b,其他系统可以在用这个token到原来服务器a校验。(token可以存在前端的cookie中,发送请求时可以取出token,然后再发送)

key是可以将token解析的, 解析为用户名密码等。所以key要保存好。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值