单点登录方案

流程

  1. 未登录的用户访问项目页面会带着当前页面url信息跳转到登陆页面
  2. 浏览器发送请求,验证登录页面的localstorage是否存有token以及token是否失效,若token没有或失效,用户需要在登陆页面填写登陆信息后确认登陆,浏览器发送请求获取新的token并存入登陆页面的localstorage
  3. 浏览器取出登陆页面localstorage中的token并生成带有token的请求参数,如:?token=xxxxx
  4. 判断登陆页面当前路径是否含有url请求参数,若没有url参数则会生成前往默认项目的路径,有url参数则取出url中的路径
  5. 浏览器把token信息放于生成的路径后并跳转到对应项目页面
  6. 跳转后项目页面记录token到localstorage
  7. 登陆成功

注意点:

  1. 上述4中的判断是为了考虑用户不是通过项目跳转到登陆页面而是直接键入登陆页面地址的情况。
  2. 当用户登录项目A后登录不同域名下的项目B,由于跨域localstorage不共享,项目B的localstorage并没有保存可用token。此时项目B会跳转到登陆页面,而登录页面在登陆项目A时已经保存了一份可用token,所以会带上token直接跳转回项目B。用户无需再次进行登录操作,但会有两次额外的自动跳转。

其他方案

  1. 使用iframe将登陆页面嵌套到各个项目,所有域名的项目都从iframe中取localstorage的token。优点为跨域登录无需多跳转两次,缺点为iframe不稳定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值