单点登录的三种方式

单点登录:简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。简单来说,一个公司有多个应用,都要进行注册登录,退出的时候又要一个个退出。用户体验很不好。单点登录可以实现:登录的时候只要一次登录,退出的时候只要一次退出。

单点登录实现的方式:
父域Cookie(同主域名)
  • cookie: cookie的作用域由path和domain共同决定,domain的值为当前域或其父域的域名/IP地址。path 默认为当前 Web 应用的上下文路径。
  • 父域: 父域的cookie可以被子域所共享。
    结论:可以将token储存到父域中,将domain设置成父域名,path设置为根路径。实现简单,但不支持跨主域名

认证中心(不同主域名,最常用解决方案)
  • 认证中心: 一个专门负责处理登录请求的独立的 Web 服务。(每个系统的登录操作都是通过认证中心实现的。)
    实现过程:访问应用时,会判断是否登录,未登录则会跳转至认证中心,认证中心登录成功之后会在认证中心写入cookie,应用中无法访问。应用则是通过认证中心跳转的url中取到用户登录成功的token,再将token存储在当前应用中
    结论 支持跨域,扩展性好,是单点登录的标准做法。但当应用A中使用iframe嵌入应用B时,则会出现一闪而过的认证中心登录界面。

LocalStorage 跨域(不同主域名)

采用LocalStorage存储token, 但localStorage不支持跨域,则需要登录一个网页时,需要在本网页在localStorage时,也需要为其他的页面写入相应的token.

  • iframe: 可以嵌入其他页面,通过postMessage进行安全的传值。
  • 目标网页: 可以通过addEventListener监听postMessage的信息,从而得到相应的token信息。

扩充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值