实例演示单点登录SSO

好久没更博文了,刚好有点时间写点东西。

最近刚给公司的几个项目整合了单点登录功能,给很多没做过的小伙伴提供点思路,说不定啥时候就用上了是吧

什么是单点登录?

一个企业可能有多个站点,在其中某个站点登录后,访问其他站点的隐私信息的时候,不需要再次登录即可访问,避免多个项目多次登录,提升用户体验,这就是单点登录

 

做单点登录要面对哪些问题

基于web应用,我们实现客户端和服务端交互的时候常用cookie和session,后端session共享实现的方式有很多,比如redis,这比较好处理,我们也不在这里赘述。单点登录要面对的主要问题的cookie不能跨域

比如www.A.com下的cookie名为cookie_a ,在我们访问www.B.com的时候,请求头是不会携带上cookie_a的,这就是主要的问题。

我们在A系统登录过后,A站点下的cookie保存着一个token,但是访问B站点的时候,我们无法向服务端发送A站点下的token,所以还需要再次登录。

那么如果要实现单点登录,关键点在于几个站点之间,传递token

 

怎么实现单点登录

我们的大致思路是用一个统一的SSO会话管理服务器,所有业务系统的登录、退出,都由这个SSO服务器来完成。登录后生成token ,把token传递给业务系统,业务系统拿到URL中的token后,保存到cookie。

这个SSO服务器还需要有token检验的功能,这点我们后面细说,这里我用简单的代码给大家演示一下,重在思路。

比如说我们现在有两个业务系统要做单点登录,分别是会员系统 和 订单系统,域名分别是http://ucenter:991 和 http://order:992/

我们建立一台SSO服务器,域名为http://sso:994

假如我们现在没有登录,然后我们访问会员系统的个人主页:http://ucenter:991/main.php

这个时候没有回话,需要跳转去SSO服务器登录,登录页面是htt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值