单点登录

       最近一直听到或者看到一个词,就是单点登录。于是花了一些时间来研究它。
       本文从什么是单点登录、为什么要用到单点登录、怎么实现单点登录三个方面来阐述。

(1)什么是单点登录?
       简单来说,单点登录就是我在一个网站成功登录之后,就可以不用登录一个或几个其他网站或者系统(原本需要登录,这些网站可能属于同一家公司或者同一个个体)。
(2)为什么要使用单点登录?
       试想一下,有一家企业有五六个甚至更多的网站,如果用户每个网站都需要经过登录,那么不仅增加了系统的负担,同时也会使用户感到厌烦,所以就需要单点登录。
(3)如何实现单点登录?
       有人会说,用cookie缓存不就搞定了,用户在某个网站成功登录之后,把用户名和密码用cookie存储在浏览器上,用户访问另外一个网站的时候,取出用户名和密码去验证,就可以不用再次登录了。这种方式确实可以,但是有局限性,我们都知道cookie是不能跨域存储的,而很多时候企业的所有网站的域名不会在同一个域段下,所以cookie这时候就不能用了。那么问题来了,有没有更好的方式来实现单点登录?
       答案是肯定的。每个人的方式可能不一样,我以自己的理解实现了一种单点登录的方式。以两个网站为例,域名不同段,我登录了其中一个网站,另外一个网站就不用登录了。首先,需要建一个sso服务端,也就是验证中心,用来验证身份用的。用户访问网站1,网站1会向sso服务端发起请求,验证该用户是否已经登录过,显然,并没有登录,于是浏览器就会跳转到登录页面来给用户登录,用户输入正确的用户名和密码之后,网站1通过验证,就会创建令牌(token),并把token和表明用户身份的信息以及其他信息(如生效时长等)一起发送给sso服务端,那能表明用户身份的信息有什么呢?可能有很多,这里我使用ip。sso收到请求之后,就进行注册,也就是把信息存储到数据库。这时候用户已经可以访问网站1了,之后用户去访问网站2,这时候,网站2也会给sso服务端发送请求(携带能表明信息的ip),sso服务端收到请求之后,将ip去数据库查询,如果有该记录并在生效期内,那么用户就不用再次登录了,可以直接访问网站2.
       ip这种方式来表明身份还是不够严谨,如果有码友有更好的方式,欢迎留言交流。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值