单点登录

单点登录(SSO - Single Sign On):对于同一个客户端(例如 Chrome 浏览器),只要登录了一个子站(例如 a.com),则所有子站(b.com、c.com)都认为已经登录。

比如用户在登录淘宝后,跳转到天猫时就已经登录了。

用例步骤

  1. 未登录用户访问子站 a.com 进行登录,自动跳转到账户中心的统一登录页 account.com/login
  2. 用户在统一登录页进行登录,登录成功后显示登录跳转页
  3. 显示登录跳转页后自动跳转回 a.com,单点登录完成
  4. 用户在访问 b.com 时无需再次登录

实现原理

登录

  1. 统一登录页登录请求完成后响应为登录跳转页
  2. 登录跳转页中通知各子站进行登录
  3. 子站收到登录请求后验证 token 是否有效,有效的话在响应中设置 cookie(user_token=xxxx)

token 验证

  • 账户中心使用私钥加密 user id,生成 token
  • 子站使用公钥解密 token,将得到的 user id 和参数 uid 对比,如果一样就是校验通过

登出

  1. 用户在某个子站主动登出时跳转到账户中心统一登出页account.com/logout?uid=xxxx&token=xxxx
  2. 账户中心验证 token 后进行登出,在登出跳转页中通知各子站进行登出(设置 cookie),类似登录通知
  3. 子站收到登出请求后验证 token 是否有效,有效的话在响应中设置 cookie(删除 usertoken)

关键点

  • 浏览器渲染登录跳转页时将执行上面用

跨域 Cookie 实现单点登录相关推荐

  1. cookie跨域,实现单点登录

      Cookie 跨域,实现单点登录 Table title                         最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现 ...

  2. java单点登录跨域_深入浅出让你理解跨域与SSO单点登录原理与技术

    原标题:深入浅出让你理解跨域与SSO单点登录原理与技术 一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互 ...

  3. Web应用跨域访问及单点登录解决方案汇总

    做过跨越多个网站的Ajax开发的朋友都知道,如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容,如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.Ajax的跨域访问问题是现有的Aj ...

  4. asp 退出登录修改cookie能进入后台_深入浅出让你理解跨域与SSO单点登录原理与技术...

    一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用 ...

  5. java cookie 跨域共享_JavaWeb 系统共享跨域cookie的实现

    [实例简介] 单点登录系统整合了各个应用系统的身份认证.用户在单点登录系统中完成认证后,就可以访问具有访问权限的应用系统.为了减轻单点登录系统的负担,用户的浏览器地址需要从单点登录系统的网址重定向到应 ...

  6. 将一个域下的cookie传到另一个域_单点登录那些事儿(二)同域下的单点登录

    单点登录(SSO,Single Sign On)对我们来说已经不陌生了,一次登录,处处登录.企业旗下都是自己的应用系统,所有的应用系统都使用同一个一级域名,通过不同的二级域名来区分应用系统.例如:百度 ...

  7. SSO单点登录学习总结(2)——基于Cookie+fliter单点登录实例

    1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置Cookie的域setDomain(&quo ...

  8. 【No.1】基于Cookie的单点登录(SSO)

    2019独角兽企业重金招聘Python工程师标准>>> 这篇主要说明基于Cookie的单点登录实现,以及Cookie的一些特性以及使用说明. 1.Cookie是什么,如何工作的 在程 ...

  9. 基于Cookie的单点登录(SSO)系统介绍

    基于Cookie的单点登录(SSO)系统介绍 SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分.SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保 ...

最新文章

  1. Python基础入门:分支及循环
  2. BGP重分布进IGP-EIGRP
  3. Springboot中艾特Controller和艾特RestController之间的区别
  4. Python配置-virtualenv和conda的区别
  5. Angular jasmine单元测试框架里describe的实现原理
  6. Markdown--语法说明
  7. OSI七层模型详解 TCP/IP协议
  8. songEagle开发系列:如何让文章实时保存的问题
  9. ANSI C和Glib C区别(二)
  10. matpower在matlab里面吗,matpower matlab 238万源代码下载- www.pudn.com
  11. 信号完整性之传输线理论(三)
  12. Android 跳转外部浏览器
  13. Js网络视频播放器之VideoJsckplayer(直播拉流rtmp、hls)
  14. java正则匹配ip_正则表达式匹配ip地址
  15. NAT 技术最全详解 : 换个马甲就能上网
  16. BUUCTF 每日打卡 2021-5-6
  17. 2021-04-29 微信登录简易版
  18. 基于51单片机的流水灯设计
  19. 视频按帧截取 python程序
  20. Tidb分布式数据库

热门文章

  1. py-faster-rcnn在Windows下的end2end训练
  2. 霍夫变换(初始学习)
  3. 三、 vSphere 6.7 U1(三):部署AD和DNS
  4. 聊聊阿里面试的三个层次!
  5. Kafka集成Spring-AcknowledgeMessageListener接口实现
  6. 《PHP精粹:编写高效PHP代码》——第1章面向对象编程
  7. 用JSP实现学生查询
  8. 转载 linux内核 asmlinkage宏
  9. 理解并取证:DLS网络架构和PPPOE数据帧
  10. 无法打开此修补程序包”或“这个产品的安装来源无法使用”解决(转)