您的位置:首页 > 其它

单点登录

2020-07-14 06:02 79 查看

前言

现在系统微服务架构已是一种趋势,系统拆分的更细,对外系统都拥有自己域名,那么系统之间的互相访问,就涉及到单点登录问题。本文是针对根域名相同,子域名之间的单点登录原理讲解,该类单点登录也是使用最频繁,实现最简单的。

实现方案

概念介绍

根域说明:cart.joybuy.com trade.joybuy.com passport.joybuy.com以上三个域名都有相同的二级域名,joybuy.com,那么joybuy.com就是以上三个域名根域,反过来这三个域名是根域的子域。

cookie介绍:cookie是保存在浏览器端用户的一些会话信息,会随着请求传输到服务器端,但请求里的cookie是由自己域名下的,及自己根域名下的cookie组成,当然cookie也只能写到自己的域,及自己域的根域下。

原理说明

  1. 用户第一次登录成功后,为用户生成唯一的token,将token写到用户根域的cookie里
  2. 之后用户访问任何一个子域系统,都会将token传输到服务器端
  3. 服务器端验证用户token的有效性,如果有效,允许访问资源,否,跳转到登录,重复1步骤

token的有效性验证

  1. 方案1:登录系统为用户生成token后,将token存储起来,请求到达服务器端后,从cookie中获得token,去token容器中查询token,如果能够取到,证明token有效,否则用户未登录,或token过期,或伪造。
  2. 方案2:token用一个key进行加密所生成,请求到达服务器端,从cookie中获得token通过key解密,如果能解密成功,并且解密结果里的过期时间,还未过期,证明有效。如果解密结果为乱码,说明token是伪造的。

真实案例流程图

转载于:https://my.oschina.net/u/3057539/blog/3082404

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: