解决单点登录问题以及学习和思考

  最近业务上面碰见了一个需要实现单点登录的问题,其主要需求就是,成功登录A项目后,通过点击一个链接能够直接跳转到B项目并且不需要登录B项目。

  在这个过程中呢,当我们点击URL的时候,请求会获取A项目中的角色名称以及事先存在a项目中的公钥(注意这里的公钥与B项目中的私钥是对应的,公钥用来加密,私钥用来解密)与当前的时间戳拼接之后进行加密,当作参数发起请求,请求之后,B项目这里就得到了A项目中的用户名和公钥以及时间戳对应的加密字符串,我们通过私钥对这个字符串进行解密,就可以得到角色名,那么再进行角色查询,如果表里面确实存在这个角色,那么B项目会生成当前的token并且在redis中对这个token设置过期时间,在这个时间段内,A项目可以通过B项目的token进行访问;

  大致实现需求就是这样,这也是单点登录的实现原理,还有一种方式是通过oAuth协议进行实现,oAuth协议的话直接通过公钥和私钥进行授权,可以不用通过获取用户信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值