基于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. DEDECMS-helper小助手扩展

    今天在做DEDE动态调用模板的时候卡住了,后终被强大的互联网解决,记录解决问题的过程,以备后用 可以在/data/helper.inc.php中进行默认小助手初始化的设置,系统默认载入小助手 例如创建 ...

  2. runAllManagedModulesForAllRequests 和 invalid url

    有这样的经验, 在本地的 IIS 上网站运行正常,但是发布到服务器上就一堆怪怪的问题 : MVC routing not work http://stackoverflow.com/questions ...

  3. IE8一枝独秀的JS兼容BUG

    // 例如淡入淡出的封装类文件 function ImagesEff(div,time){ this.arr=[];//装载所有div this.time=time; this.recordOld=n ...

  4. [LeetCode#82]Remove Duplicates from Sorted Array II

    Problem: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? F ...

  5. Paths on a Grid

    http://poj.org/problem?id=1942 题意:一个n*m的格子,从左下角走到右上角有多少种走法,规定只能向上或向右走: 思路:解法挺水的,高中学组合数的时候老师给讲过:求C[m+ ...

  6. 【JS】壹零零壹

    function f1() { } var f2 = function() { } var O = {} O.f1 = f1 O.f2 = f2 console.log(O)

  7. HDU 1269 迷宫城堡 【强联通分量(模版题)】

    知识讲解: 在代码里我们是围绕 low 和 dfn 来进行DFS,所以我们务必明白 low 和 dfn 是干什么的? 有什么用,这样才能掌握他.   1.  dfn[]  遍历到这个点的时间 2.   ...

  8. 【动态规划】【KMP】HDU 5763 Another Meaning

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5763 题目大意: T组数据,给两个字符串s1,s2(len<=100000),s2可以被解读成 ...

  9. Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest 状压DP

    D. Little Pony and Harmony Chest   Princess Twilight went to Celestia and Luna's old castle to resea ...

  10. [转载]软件测试之Web测试经典总结

    转载自:软件测试之Web测试经典总结 基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且, ...