基于B/S系统间单点登录

此处说的单点登录的概念,即不同系统公用一个登录界面。一处系统通过登录验证,在接入的各系统均为登录状态。一般有两种情景:

1)  一级域名相同

例如:tieba.baidu.com 和 www.baidu.com

这种情形的解决方案,非常简单。就是在统一登录页面登录成功以后,将用户的token(共享的session)信息存在cookie里,且cookie的作用域设为一级域名,例如设为baidu.com。这样同一个浏览器就实现了用户登录信息的共享。

2)  一级域名不相同

例如 bbs.gamename.com 和 www.public.com

假设这种场景,即public官网旗下的某些款游戏bbs登录都要接入public官网登录中心。

这种场景的问题关键在于用户在public登录中心登录以后,public如何将用户的token信息返回给bbs。因为不同域名无法做到共享cookie,如何解决这个问题呢?

这里提供一种简便的思路。如下图:

第1步跳转:

bbs跳转之前需要先生成一个guid并存入cookie;guid建议用10位随机数。

登录地址如下:

http://www.public.com/user/login/?sourcepage=http://bbs.gamename.com/&guid=1393919365

注册地址如下:

http://www.public.com/user/register/?sourcepage=http://bbs.gamename.com/&guid=1393919365

第2步帐号中心验证登录态。

第3步验证结果:

Public服务器验证请求,并进行登录逻辑。采用RSA私钥加密字串得到loginfo:

第4步跳转:

url传参返回加密字串,格式如下:

http://bbs.gamename.com/?loginfo=xTfeKYTQ492DPVEKLdPsdVEJ9Z0B3L45ILTlK/IdOe30A1U+5+/9ScTLt99SvTGHylRGKNTs95/ISX6qMR2DLNUyIlo8MecSdX4j15potXFObQWbf83RM9UsDYlzS19TQV/S1x/TlAwwQhJ9oq2bLauc3k8DBNfQagMSpTsOT+w=

第5步登录验证:

调用bbs服务器接口,传入loginfo和本地guid,bbs服务器公钥解密loginfo,验证guid的一致性。若一致则将帐号信息进行登录操作,并返回登录结果。

其中,loginfo字串解密后信息包括:

参数名称

描述

uid

游戏中心返回用户平台ID。

token

平台会话token

nickName

昵称

guid

第6步

bbs服务器根据登录验证结果,渲染返回给客户端。

B/S系统间跨域单点登录设计思路的更多相关文章

  1. 使用Cookie实现跨域单点登录的原理

    对于构建分布式系统来说业务功能的物理部署会随着新业务模块的增加而增加或改变物理部署的位置.而每个用户都有统一的帐号作为我们登录系统时的一个认证.当新业务或子系统部署在不同的物理机上,我们去访问不同的业 ...

  2. asp.net 真正实现完全跨域单点登录

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. asp.ne ...

  3. Cookie同域,跨域单点登录(转)

    Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录. 单点登 ...

  4. Cookie同域,跨域单点登录

    Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录. 单点登 ...

  5. [转]asp.net 跨域单点登录

    本文转自:http://tech.e800.com.cn/articles/2009/814/1250212319986_1.html 单点登录(Single Sign On),简称为 SSO,是目前 ...

  6. 网站跨站点单点登录实现--cookie

    至于什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录.一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作 ...

  7. Asp.Net Core基于Cookie实现同域单点登录(SSO)

    在同一个域名下有很多子系统 如:a.giant.com  b.giant.com   c.giant.com等 但是这些系统都是giant.com这个子域. 这样的情况就可以在不引用其它框架的情况下, ...

  8. JAVA实现同域单点登录

    所用技术: SSM MySQL Maven Tomcat8.0 同域单点登录详细步骤如下: 1.首先写一个登录界面(隐藏域为暂存地址) 2.判断用户密码是否正确,正确则添加cookie,否则返回错误页 ...

  9. SANGFOR AC配置AD域单点登录(一)----AC侧配置

    一.需求 1. AD域单点登录适用于客户内网已有AD域统一管理内网用户,部署AC后,希望AC和AD域结合实现平滑认证.即终端PC开机通过域帐号登录AD域后自动通过AC认证上网,无需再次人为通过AC认证 ...

随机推荐

  1. AMD:浏览器中的模块规范

    前面提到,为实现与Node.js相同方式的模块写法,大牛们做了很多努力. 但浏览器环境不同于服务器端,它的模块有一个HTTP请求过程(而Node.js的模块文件就在本地),这个请求过程多数使用scri ...

  2. BZOJ 1032 祖玛

    Description 这是一个流行在Jsoi的游戏,名称为祖玛.精致细腻的背景,外加神秘的印加音乐衬托,彷佛置身在古老的国度里面,进行一个神秘的游戏——这就是著名的祖玛游戏.祖玛游戏的主角是一只石青 ...

  3. HYPER-V2008里安装WINDOWS 2012,以及监控宝

    呵呵,这两者有关系么?没关系.哈哈. 为了方便就放一起了. 至少,2008里的HYPERV能安装2012,倒是给我很多欣慰.

  4. 利用低成本的MCU的UART驱动智能卡

    在银行.身份识别和电信市场中,对安全和增强的功能性不断增长的需要,增加了全球范围智能卡的使用.另一方面,这也使得对安全性较低的磁条卡的使用量下降. 然而,所需的基于智能卡系统中,适当的通信系统的硬件和 ...

  5. zabbix 参数说明

    <pre name="code" class="html">数据采集的工作模式可以分为被动模式(服务器端到客户端采集数据) 主动模式(客户端主动上报 ...

  6. bzoj3744

    这道题是目前我做bzoj最感动的一题没有之一……首先先警示一下,分块的题目能不套主席树尽量不套因为主席树不仅回答来一个log而且常数也比较大,对于分块这种根号的算法非常不适合这里是求区间逆序对,考虑查 ...

  7. 【动态规划】Vijos P1218 数字游戏(NOIP2003普及组)

    题目链接: https://vijos.org/p/1218 题目大意: 一个N个数的环,分成M块,块内的数求和%10,最后每块地值累乘,求最大和最小. n(1≤n≤50)和m(1≤m≤9)太小了可以 ...

  8. 芭比娃娃 Barbara

    芭比娃娃(芭比)是20世纪最广为人知及最畅销的玩偶,由Ruth Handler发明,于1959年3月9日举办的美国国际玩具展览会(American International Toy Fair)上首次 ...

  9. 用Myeclipse 编写struts.xml时,自动提示

    之所以不自动提示,是因为这个xml它不知道自己的xml格式是什么有哪些标签,所以不知道该怎么提示 所以就要给它引入格式,所以要引入XSD或者DTD文件 1.首先打开MyEclipse的窗口,选择“Wi ...

  10. Spring MVC返回对象JSON

    @RestController 用于返回对象,会自动格式化为JSON     @RequestMapping("/user2")     public User2 user2(Mo ...