单点登录-SSO

单点登录 (Single Sign-On )


1、同域单点登录

  登录的时候,设置cookie的域即可。

2、跨域单点登录

  重点是,如何在浏览器端保存登录的标识。

  祭图:(脑补)

  三个系统:  

    a.aaa.com

    b.bbb.com

    s.sso.com

  假设条件:用户首次打开系统,未禁用cookie。

  1、用户打开浏览器访问a系统需要登录授权的页面,a系统返回重定向信息。

  2、重定向跳到s系统,进行登录。

  3、登录完成后,s系统返回重定向信息,重定向路径后面加上token。

  4、当信息返回浏览器时,浏览器保存s系统的登录信息,跳转到a系统。

  5、a系统验证token,验证通过,打开对应的页面。

  6、访问b系统,b系统返回重定向信息。

  7、浏览器将保存的s系统的登录系统,携带到s系统

  8、s系统,判断为已经认证。返回重定向到b系统,重定向路径后面加上token。

  9、b系统验证token,验证通过,打开对应的页面。

三、实现

  1、JWT (json web token) 官网:https://jwt.io/

  2、OAuth 授权协议框架,用于产生和校验token

  3、浏览器有两种存储,查看方式为F12浏览器,在Application内查看对应的存储内容。

    a、Local Storage 长期存储,windows.localStorage 即可调用该存储。

    b、Session Storage  会话存储。

  4、ajax 支持将参数添加到请求头内进行发送的方式。

原文地址:https://www.cnblogs.com/chen--biao/p/9726193.html