【多个域名+1个登录域名。登录成功后将其他多个域名分配SESSION值,即实现了多域名同时登录的情况。登出同理!】

session_start();//这里 会默认创建一个COOKIE名为:PHPSESSID
//$_SESSION['a'] = 'A';
//print_r($_SERVER);exit;//单点登录接口,向其他域名发送同步登录数据。if(isset($_SESSION['a']) && $_SERVER['HTTP_HOST'] == 'www.a.com') {//【--------------第1种方法----------】 仅适用于当前域名的所有子域名。只要设置domain参数即可//这里可以把cookie的值保存到数据库表中。当用户每次请求时,查询表中是否有该 ck_a_value ,如果有的话则认为是登录状态。setcookie('ck_a_key','ck_a_value_uid_1',time()+300, '/', 'a.com');//setcookie('ck_a_key','ck_a_value_uid_1',time()+300);//【--------------第2种方法----------】 用iframe,该方法范围更广。可适用于其他域名。//echo '<iframe src="http://t1.a.com/a.php?ssid='.$_SESSION['a'].'">';       }print_r($_COOKIE);
echo '<br><br>';
print_r($_SESSION);if(isset($_GET['ssid']))
{$_SESSION['a'] = $_GET['ssid'];
}exit;

假设你有三个不同域名,a.com, b.com, http://c.com,将其中之一作为真正的登陆入口,所有的域名下发起的登陆,全部重定向到这个节点,这里假设选择http://a.com/login.php为统一登入节点,为了方便说明,把http://a.com叫做主节点,其余叫做从节点。 假设现在从任意站点发出登陆请求,最终都被带到 http://a.com/login.php?from=b.com&sfkey=xxxxxx,用户输入登陆信息,假设登陆成功,返回一个登陆成功中间页面,在这个页面里,包含下面html代码 width="0" height="0" src="https://b.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx">> width="0" height="0" src="https://c.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx">>sessid是登陆成功以后的session ID,sfkey是一个安全码,这两个串在login.php里绑定到当前登陆的用户记录上。 这个时候http://a.com实际已经登陆完毕,获得了PHPSESSID的cookie。两个iframe的作用是把获得的session id立刻同步到从节点上,从节点的sso.php获得sessid和sfkey后,首先校验这个配对是否存在,如果存在,立刻把sessid值设为当前session idsession_id($_GET['sessid']); // 使用a.com产生的session idsession_start();sso.php请求完毕后,b.com和c.com这两个站点就获得了和a.com一样的PHPSESSID cookie; 这个页面会把用户重定向回所来自的页面(到达login.php的时候记住了),重定向完成后,用户已经在所有网站完成了同步登陆。 http://a.com发送iframe请求的时候使用加密的sessid=xxxxxx里的sessid,从节点的sso.php获取密文后解密才获得真实的session id 你可以用单独域名来作为登陆主节点,比如http://login.x.com,而不用a b c中的任意一个,http://login.x.com做且仅作登陆服务。

多域名同步登录,单点登录SSO相关推荐

  1. 不同域名下的单点登录

    可以选择将 Session ID (或 Token )保存到浏览器的 LocalStorage 中,让前端在每次向后端发送请求时,主动将LocalStorage的数据传递给服务端 这些都是由前端来控制 ...

  2. XSS跨站脚本攻击防御和Cookie,及SSO单点登录原理

    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...

  3. 统一用户认证和单点登录(SSO)解决方案

    本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理.认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题. 随着信息技术和网络技术的迅猛发展 ...

  4. 关于Spring Security框架 关于单点登录sso

    1.Spring Security的作用 Spring Security主要解决了认证和授权相关的问题. 认证(Authenticate):验证用户身份,即登录. 授权(Authorize):允许用户 ...

  5. 你真的了解单点登录(SSO)吗? 单点登录实现方式

    在程序开发中,特别是网站类开发,会接触到单点登录(SSO),什么是单点登录?单点登录(SSO)有什么用?下面就来详细介绍一下. 1 单点登录 1.1 什么是单点登录 单点登录的英文名叫做:Single ...

  6. SSO单点登录-基于cookie的单点登录

    1.概述 单点登录(Single-Sign-On),简称SSO,它的解释为:在多个应用系统中,只要登陆一次,便可以访问其它相互信任的系统.早期系统由于只有一个服务,因此只需要登录一次,就可以访问系统的 ...

  7. SSO(单点登录)介绍

    标签:sso iplas ##一.SSO(单点登录)介绍 SSO英文全称Single SignOn,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将 ...

  8. 单点登录SSO的实现原理

    单点登录SSO的实现原理 单系统登录机制 浏览器第一个请求服务器,服务器会创建一个会话,并将会话的ID作为响应的一部分发送给浏览器,浏览器存储会话ID,并在后续的请求中带上会话ID,服务器取得请求中的 ...

  9. 基于Spring Security + OAuth2 的SSO单点登录(服务端)

    相关技术 spring security: 用于安全控制的权限框架 OAuth2: 用于第三方登录认证授权的协议 JWT:客户端和服务端通信的数据载体 传统登录 登录web系统后将用户信息保存在ses ...

最新文章

  1. 苹果8参数_八年磨两苹果,日本精致农业“秘密” 打造不一样的智慧农业园区...
  2. Python list, dict, set, tuple
  3. Mac下Unity5x的安装
  4. undefined reference to 问题解决方法
  5. 利用Python对Excel文件进行批量操作
  6. cors 前后端分离跨域问题_SpringBoot 实现前后端分离的跨域访问(CORS)
  7. Linux中SDIO命令,Linux MMC/SD/SDIO体系结构
  8. linux判断cpu是否过载,Linux CPU 如何判断忙
  9. 【英语学习】【WOTD】palimpsest 释义/词源/示例
  10. idea导入gradle项目ctrl无法定位问题
  11. 聚合四方支付系统架构及所需配置
  12. Java面试题2.0--solr
  13. 虚拟网络之Kubernetes Cilium CNI 快速部署实操
  14. 西安2020EC游记
  15. mysql导出的身份证格式错误
  16. 神秘的程序员6 没事笑一笑
  17. 程序龙的密码(递归算法)
  18. 广安职业技术学院计算机在那个校区,广安职业技术学院有几个校区哪个更好
  19. Java 对象排序详解
  20. MySQL从删库到跑路(9):group by——给漂亮小姐姐分个组

热门文章

  1. 你的网站做好神马搜索优化了吗?神马搜索站长工具提交
  2. JVM内功心法-欲练此功,必先“自宫”
  3. 【MAPBOX基础功能】24、mapbox通过canvas方式绘制波纹点位
  4. Emacs字体设置方法总结
  5. 第二十八讲:神州路由器地址转换的配置
  6. 带你详细了解ADSS光缆
  7. Unity中的点乘和叉乘
  8. Python 灰色关联度分析 与结果可视化
  9. echarts 饼图默认高亮,选中任意选项离开后再次高亮,中心区显示选中的数据
  10. 如何将一首网易云音乐,生成一个音乐二维码?