一句话,就是能让各个不同的域名带回相同的认证信息即可。
实现方法,就是把其中一个登陆后,把认证的信息分别保存在不同域名下的 cookie,
当在验证是否登陆时,验证 cookie,如果是子域名,这个则直接用 cookie设置作用域为顶级即可。
以下说的是不同的域名,其中是用了 script 的功能,分别去访问各个页面,如域名:
www.a.com
www.b.com
www.c.com
各个域名下放一个 index.php文件,作为验证用,
index.php测试代码如下:

<?php
print_r($_COOKIE);
//这里解析 cookie中的信息,如果验证通过,则生成 cookie写到相应的域名下
?>

假设统一的登陆的页面是
www.c.com/login.php,www.c.com/do.php先作前端验证,如果正确,则允许提交
login.php 代码如下

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>sync login</title>
<script src="jquery-1.8.3.min.js" type="text/javascript"></script>
</head>
<body>
<form action="http://www.c.com/do.php" method="post">
<input type="text" name="username" placeholder="用户名"/>
<input type="text" name="password" placeholder="密码"/>
<input type="submit" value="登录"/>
</form>
<script>
$(document).ready(function(){
$("input[name='username']").click(function(){
var username = $("input[name='username']").val();
var password = $("input[name='password']").val();
var url ="do.php";
$.post(url,{code:name},function(data){
if(data.error==false)
{
return true;
}else
{
alert(data.message);
return false;
}
},'json');
});
});
</script>
</body>
</html>

 do.php代码如下:

<?php
$redirect = empty($_REQUEST['redirect']) ? 'http://www.a.com' : $_REQUEST['redirect'];
if(empty($_REQUEST['username']) || empty($_REQUEST['password'])){
header('Loaction:http://'.urldecode($redirect));
exit;
}
$urls = array(
'www.a.com/a.php',
'www.b.com/a.php',
'www.c.com/a.php'
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<?php foreach($urls as $url){?>
<script type="text/javascript" src="http://<?php echo $url.'?code='.$_REQUEST['code'] ?>"></script>
<?php } ?>
<title>登陆验证</title>
</head>
<body>
<script type="text/javascript">
window.onload=function(){
location.replace('<?php echo $redirect; ?>');
}
</script>
</body>
</html>

 

这样,直接访问 www.a.com/www.b.com/www.c.com就可以获取到 cookie信息了
以上是基本的原理,在各个页面作下验证判断就可以直接用了,一般域名少的,
足够使用,一般也不会太多的域名

 

 

 

SSO单点登陆的更多相关文章

  1. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  2. session问题总既然(深入理解)&Token问题理解&sso单点登陆理解实现

    一.Session使http协议成为有状态协议(浏览器cookie本地这个session,服务器端也有这个session) 1.ajax前端登陆无法保存session,造成无法维持登陆状态(http本 ...

  3. Lind.DDD.SSO单点登陆组件的使用(原创)

    回到目录 一般sso的说明 在Lind.DDD框架里,有对单点登陆的集成,原理就是各个网站去sso网站统一登陆授权,之后在sso网站将登陆的token进行存储,存储方式随你(cache,redis,m ...

  4. 京东SSO单点登陆实现分析

    京东的sso流程: 初始访问状态: cookies: http请求:   1.在首页点击登陆,跳转至passport.360buy.com,给予验证cookie alc(可以试试在提交登陆信息前删除该 ...

  5. Java电商项目-8.实现SSO单点登陆

    目录 创建ashop-sso-web单点登陆系统 用户名唯一性验证 用户注册 用户登陆 获得用户登陆状态 实现安全退出 项目的Github地址 创建ashop-sso-web单点登陆系统 先创建好模块 ...

  6. springSession框架来实现sso单点登陆

    介绍一下springsession这个框架,其实springsession框架默认的是使用redis来实现单点登陆的,但是不支持redis集群,这个框架的特点是无侵入的实现单点登陆,就是说我们之前获取 ...

  7. 京东商城跨域设置Cookie实现SSO单点登陆过程

    可以先看下这边文章:http://blog.chinaunix.net/uid-25508399-id-3431705.html   1.点击首页的登陆按钮跳转到京东的登陆中心https://pass ...

  8. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  9. ASP.NET在不同情况下实现单点登陆(SSO)的方法

    第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...

随机推荐

  1. LINUX C++ 技术博客

    http://blog.csdn.net/pcliuguangtao/article/category/676422

  2. dubbo-RPC学习(一)自定义配置

    在dubbo的基础上实现异步调用的时候,因为需要支持回调的“重试间隔时间”与“重试次数”等属性.因此,需要扩展dubbo.xsd,需要添加新的属性来支持这种扩展. dubbo 的xsd是基于sprin ...

  3. 安装Laravel遇到You must enable the openssl extension to download files via https问题

    刚看了一篇文章说了2014年最火的10个php框架,看到了Laravel,于是便自己试试,孰料刚安装便遇到了一个问题(由于一不小心关掉了cmd,此处无法截图显示),便是如文章标题中所说的那样,goog ...

  4. Android基本控件之GridView

    我们在使用手机的过程中,会看到一些图片配上文字的一些情况,今天我们就来介绍一下安卓控件的GridView GridView组件用来以网格方式排列视图,与矩阵类似,当屏幕上有很多元素(文字.图片或其他元 ...

  5. XGPush集成(信鸽集成)

    #import "AppDelegate.h" #import "XGPush.h" #import "XGSetting.h" #defi ...

  6. css笔记14:css文件之间可以相互引用

    css文件之间相互引用是通过@import指令完成的 格式: @import  url("被引用的css文件"); 顺便说一句,如果希望在html或者php文件中引用某个xxx.c ...

  7. 使用 collectionView 实现表头,区头,区尾

    UICollectionView 的使用是跟表的使用是一样,瀑布流的布局会比表的效果更好,这里说一下 collectionView 设置表头, 区头,区尾 设置表头可以约束 collectionVie ...

  8. Android之ListView常用技巧

    ListView是一个非常常用的列表控件,虽然在5.x时代ListView的风头正在逐渐的被RecyclerView抢去,但是ListView的使用范围依然十分广泛. 接下来的ListView的常用技 ...

  9. 安卓Design包之Toolbar控件的使用

    转自:ToolBar的使用 ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话, ...

  10. 获取Spring-boot系统环境变量方法

    public static ConfigurableApplicationContext context = null; public static void main( String[] args ...