每日一题【单点登入】2020-11-27

什么是单点登入?前端怎么实现单点登入的?

单点登入:在多个应用系统之中,只需要登录一次,就可以访问其他相互信任的应用系统。

前端如何实现?

一、以cookie作为凭证媒介
最简单的单点登录实现的方式:is使用cookie作为媒介,存放用户的凭证,用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前的用户。

二、通过JSONP实现
对于跨域问题,可以使用JSONP实现。用户在父应用登录后,跟session匹配的cookie会存放到客户端当中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求当中带上父应用域名下的cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。

三、通过页面重定向的方式
通过父子应用来回重定向进行通信,实现信息安全的传递。
父应用提供一个GET方法的登录接口,用户通过子应用重定向连接的方式返回这个接口,如果用户还没有登录,则返回一个登录的页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的tooken,并且重定向到子应用提供的验证token的接口,通过解密和校验之后,子应用登录当前的用户。

四、使用独立的登录系统
一般来说,大型的应用会把授权的逻辑与用户信息的相关逻辑独立成一个应用,称为用户中心。
用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方的应用。当第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。

一般公司的实现是:
用共享cookie的方式,使其同域名,可以把token存在cookie里面,把cookie的路径设置成顶级域名下,这样在当前浏览器打开的所有的子域都能读取到cookie中的token,拿到cookie里的token,进入另一个系统时,写一个判断,例如是利用vue的路由管理,判断用户信息与后台的是否一致,是的话允许进入,否则直接跳转到登录页。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值