基于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. iOS开发-网络框架-b

    网络框架(以下称NJAFNetworking)是基于AFNetworking框架的简单封装,基本功能包括POST请求,GET请求,上传文件,下载文件,网络状态,缓存等. 为什么要使用NJAFNetwo ...

  2. One git command may cause you hacked(CVE-2014-9390)

    0x00 背景 CVE-2014-9390是最近很火的一个漏洞,一个git命令就可能导致你被黑,我不打算深入探讨这个漏洞的细节,官方已经在https://github.com/blog/1938-gi ...

  3. codeforces D. Long Path

    http://codeforces.com/contest/408/problem/D 题意:有一排房间每个房间有两扇门,一扇通往第i+1个房间,另一扇通往第p[i]个房间,(p[i]<=i)然 ...

  4. Qt Style Sheets Examples(官方例子目录,很全)

    Contents Style Sheet Usage Customizing the Foreground and Background Colors Customizing Using Dynami ...

  5. java进程卡死问题

    原文地址:http://stackoverflow.com/questions/28739600/jvm-hang-and-kill-3-jmap-failed tomcat进程出现了如下异常,并且卡 ...

  6. ♫【JS】offsetParent

    This property will return null on Webkit if the element is hidden (the style.display of this element ...

  7. Majority Element II——LeetCode

    Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...

  8. 简单约瑟夫环的循环单链表实现(C++)

    刚刚接触C++以及数据结构,今天做了第一次尝试用C++和数据结构解决问题,问题是基于约瑟夫环问题的简单版. 先来看看约瑟夫环问题的介绍: 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3.. ...

  9. hdu 4632区间 dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 用点容斥原理转移状态, dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+ ...

  10. J - Invitation Cards

    题目大意:邀请卡 在电视的时代,没有多少人会去剧院观看演出.古老的喜剧演员 Malidinesia知道这个事实.他们想传播戏剧尤其是古老的戏剧,他们在邀请卡上打印必要的信息和一些节目,一些学生被雇佣过 ...