一句话,就是能让各个不同的域名带回相同的认证信息即可。
实现方法,就是把其中一个登陆后,把认证的信息分别保存在不同域名下的 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. Computer Science Theory for the Information Age-4: 一些机器学习算法的简介

    一些机器学习算法的简介 本节开始,介绍<Computer Science Theory for the Information Age>一书中第六章(这里先暂时跳过第三章),主要涉及学习以 ...

  2. java_线程-锁

    package com.demo.test3; import java.util.concurrent.CountDownLatch; /** * @author QQ: 1236897 * */ / ...

  3. yar

    <?php class Operator { /** * 两数相加 */ public function add($a, $b) { return $this->_add($a, $b); ...

  4. B - Plane of Tanks: Pro

    Description Vasya has been playing Plane of Tanks with his friends the whole year. Now it is time to ...

  5. Divisibility

    Description Consider an arbitrary sequence of integers. One can place + or - operators between integ ...

  6. Linux命令行技巧

    Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...

  7. [Javascript,JSON] JQuery处理json与ajax返回JSON实例

    转自:http://www.php100.com/html/program/jquery/2013/0905/5912.html [导读] json数据是一种经型的实时数据交互的数据存储方法,使用到最 ...

  8. Oracle 追踪回话SQL几种方法

    生成sql trace可以有以下几种方式: 1.参数设置:非常传统的方法. 系统级别: 参数文件中指定: sql_trace=true 或 SQL> alter system set sql_t ...

  9. [改善Java代码]推荐覆写toString方法

    建议49: 推荐覆写toString方法 为什么要覆写toString方法,这个问题很简单,因为Java提供的默认toString方法不友好,打印出来看不懂,不覆写不行,看这样一段代码: public ...

  10. 实现TableLayout布局下循环取出TableRow控件中的文字内容到list集合

    布局方式为TableLayout,利于实现表单样式展现. <!-- 详情内容区域 --> <ScrollView android:layout_above="@id/id_ ...