什么是免登陆?
免登录也就是平常别人说的免登。比如某某网站登录后可以直接免登到另外某某网站。打个比方,淘宝买好物品下好订单付款时,直接跳转到支付宝的付款页面直接进行付款,而不用再登录支付宝,这个过程就是网站间功能通过免登陆打通了。
一句话概括就是用户在A网站登录后,B网站信任用户在A网站的登录状态,并认为(映射)用户也登录了B网站。
免登的实现原理
免登的实现,按照不同系统间的拓扑关系可以有很多不同的实现方式。
如果多个系统,两两间都是需要功能免登打通,依赖关系呈网状,那么可以使用SSO单点登录的方式进行免登。
如果系统间功能免登的依赖关系呈现单项依赖性,那么可以通过通过Token验证技术做到单项免登。
单项免登实现步骤
1,创建一个登录控制中心。
登录控制中心提供两个主要的功能,一个是根据源网站的登录请求信息生成目标网站的TVS url(Token Validate Service)及Token,以及为了防止篡改的摘要信息,并将生成的Token及请求信息进行缓存。另一个功能是对目标网站的TVS服务提供Token验证功能,验证通过后返回目标网站来源网站的登录信息表示,比如源网站对应登录的LoginId,那么目标网站就可以根据这个LoginId找到本地用户体系中所对应的登录信息进行本地登录及授权操作了。
具体步骤:
1,用户浏览器请求源网站免登目标网站功能的免登链接代理。
2,源网站免登代理接受到请求后,判断用户是否在本网站登录,如果没有登录那么跳转到登录页面让用户登录。如果用户已经登录,那么向登录控制中心提交当前登录用户LoginId、网站SiteId、目标网站TargetUrl、来源页面Ref和客户端IP。
3,免登控制中心首先验证传过来的TargetUrl,是否在已经配置的白名单中,如果存在则找到此TargetURL对应的TVS URL, 然后再随机生成一个不重复的Token,并将此Token和进行一个摘要Sign,然后就把此TVSURl带上Token和摘要Sign信息回传给源网站。
4,源网站重定向用户浏览器到tvsurl,用户浏览器访问目标网站的tvsurl。
5,目标网站tvsurl接收到请求后,通过调用登录控制中心的token验证服务对token、sign、siteId、IP、ref进行校验,如果在校验通后获取源网站对应的登录LoginId,如果此LoginId在目标网站中存在用户映射,那么找到目标网站本地对应的LoginId,并进行登录操作(和普通登录一样,知识因为是已经校验了验证信息,所以不用密码了)记录到浏览器Cookie中。再重定向到源网站带入的targetURL。
6,至此,即完成了从源网站到目标网站的针对制定功能targetURL的免登打通了。
注意点:
由于上述6部操作完成后,目标网站对应源网站LoginId的本地用户已经登录状态了,如果此时用户浏览器保持目标网站功能页面不关闭,而源网站登出并换了一个登录用户时,源网站与目标网站两边loginId其实是不对应的,且源网站发起的针对目标网站的功能调用可能会导致两个不对应用户间数据产生不一致,如源网站B用户改了目标网站A用户的信息或关键数据等。
对于这种问题如何避免?
类图
序列图
- 大小: 86.8 KB
- 大小: 34.9 KB
分享到:
相关推荐
单向[k]-元[n]-立方体是指具有单向边的[k]-元[n]-立方体互连网络拓扑。当网络包含的顶点数目较大时,比起传统的双向[k]-元[n]-立方体,单向?[k]-元[n]-立方体对通信硬件复杂性的要求更低一些。提出了[k]-元[n]-立方...
Hibernate-单向关系Hibernate-单向关系
基础编程:单向循环链表操作实现_CPP
数据结构中单向链表的逆转详解
附件是.java 文件,实现了单链表的逆序算法,文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流! 首先定义了一个ListNode类来表示链表中的节点,然后在reverseList方法中实现了链表的逆序。reverseList方法...
C#单向链表的实现的源码
单向循环链表实现约瑟夫环.zip
这是实现了一对多单向关联关系实现元源码,希望对你有用。
Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...
这里包含了hibernate多对一单向关联关系实现源码,希望对你有用。
C++进阶学习——单向链表的实现,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/49685199
单向链表的实现 单向链表的实现 单向链表的实现
机电传动单向数控平台设计 第一章、设计任务 1 2.1设计任务介绍 1 2.2 设计任务明细 2 2.3 设计的基本要求 2 第二章、总体方案设计 2 2.1 设计基本依据 2 2.2 总体方案确定 3 第三章、机械部分设计 4 3.1 导轨的选择...
【OGG】OGG的单向复制配置-支持DDL(二)【OGG】OGG的单向复制配置-支持DDL(二)【OGG】OGG的单向复制配置-支持DDL(二)
单向循环链表-仿学生管理系统[详尽注释],即看即会! 具备创建、添加、删除、查找、修改、排序、及输出!
利用simulink功能实现基于PCMTDM2DPSK技术的单向通信系统-利用simulink功能实现基于PCMTDM2DPSK技术的单向通信系统.doc 本帖最后由 zhanglei7655823 于 2012-4-28 21:51 编辑 希望对你有用 利用simulink...
萝丽双路单向电调 - B版源码-增加丢信号保护
一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部...
expect配置单向ssh免密码登录