php的sso单点登录实现方法,phpsso单点登录

本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下:

这里详细讲到了几点:

1、点击登录跳转到SSO登录页面并带上当前应用的callback地址

2、登录成功后生成COOKIE并将COOKIE传给callback地址

3、callback地址接收SSO的COOKIE并设置在当前域下再跳回到应用1即完成登录

4、再在应用程序需要登录的地方嵌入一个iframe用来实时检测登录状态,代码如下:

index.php 应用程序页面:

代码如下:

header('Content-Type:text/html; charset=utf-8');

$sso_address = 'http://XXXX.com/sso/login.php'; //你SSO所在的域名

$callback_address = 'http://'.$_SERVER['HTTP_HOST']

.str_replace('index.php','',$_SERVER['SCRIPT_NAME'])

.'callback.php'; //callback地址用于回调设置cookie

if(isset($_COOKIE['sign'])){

exit("欢迎您{$_COOKIE['sign']} 退出");

}else{

echo '您还未登录 点此登录';

}

?>

login.php SSO登录页面:

代码如下:

header('Content-Type:text/html; charset=utf-8');

if(isset($_GET['logout'])){

setcookie('sign','',-300);

unset($_GET['logout']);

header('location:index.php');

}

if(isset($_POST['username']) && isset($_POST['password'])){

setcookie('sign',$_POST['username'],0,'');

header("location:".$_POST['callback']."?sign={$_POST['username']}");

}

if(emptyempty($_COOKIE['sign'])){

?>

}else{

$query = http_build_query($_COOKIE);

echo "系统检测到您已登录 {$_COOKIE['sign']} 授权 退出";

}

?>

callback.php 回调页面用来设置跨域COOKIE:

代码如下:

header('Content-Type:text/html; charset=utf-8');

if(emptyempty($_GET)){

exit('您还未登录');

}else{

foreach($_GET as $key=>$val){

setcookie($key,$val,0,'');

}

header("location:index.php");

}

?>

connect.php 用来检测登录状态的页面,内嵌在页面的iframe中:

代码如下:

header('Content-Type:text/html; charset=utf-8');

if(isset($_COOKIE['sign'])){

$callback = urldecode($_GET['callback']);unset($_GET['callback']);

$query = http_build_query($_COOKIE);

$callback = $callback."?{$query}";

}else{

exit;

}

?>

希望本文所述对大家的php程序设计有所帮助。

http://www.bkjia.com/PHPjc/939404.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/939404.htmlTechArticlephp的sso单点登录实现方法,phpsso单点登录 本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下: 这里详细讲...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

sso实现php,php的sso单点登录实现方法,phpsso单点登录_PHP教程相关推荐

  1. linux单点登录命令,配置RHEV中Linux 虚拟机使用 IPA(IDM)实现单点登录的方法

    要配置 Red Hat Enterprise Linux 虚拟机使用 GNOME 和 KDE 图形桌面系统和 IPA(IdM)服务器实现单点登录,您需要在虚拟机上安装 rhevm-guest-agen ...

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

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

  3. thinkphp限制单点用户登录_php的sso单点登录实现方法

    本文实例讲述了php的sso单点登录实现方法.分享给大家供大家参考.具体分析如下: 这里详细讲到了几点: 1.点击登录跳转到SSO登录页面并带上当前应用的callback地址 2.登录成功后生成COO ...

  4. springboot实现单点登录_什么是单点登录,php是如何实现单点登录的

    文章来自:php中文网链接:https://www.php.cn/php-weizijiaocheng-429869.html 作者:中文网 商务合作:请加微信(QQ):2230304070 视频教程 ...

  5. 用户登录问题python_Python Flask单点登录问题

    1. 什么是单点登录? 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的 ...

  6. 挑战用五行代码轻松集成登录系统,实现单点登录

    随着企业业务的发展,OA 系统.财税系统.CRM 系统等各类系统只增不减,权限管理也日渐力不从心.很多企业都在寻找这样一种服务--员工只需登录个人 OA 系统的账号密码,就可以访问飞书.销售易.客户系 ...

  7. 什么是单点登录?怎么样实现单点登录

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...

  8. usmssosetup 单点登录被禁用_SSO单点登录三种情况的实现方式详解

    单点登录(SSO--Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统--百度经验.百度知道.百度文库等 ...

  9. usmssosetup 单点登录被禁用_SSO(单点登录)实施中遇到的几个问题

    单点登录应用中,遇到如下的几个问题:1.超时问题:2.jsessionid问题:3.单点退出时有时子系统未能正常退出:4.有些请求路径不需要单点登录过滤器拦截:5.不同应用服务实现可能要求SSO客户端 ...

最新文章

  1. 基于canoe 新建一个lin工程_CANoe教程 | 高级编程 - C Library API
  2. 数据降维(特征提取)和特征选择有什么区别?
  3. 业界 | 5个步骤开启你的数据科学职业生涯!(附链接)
  4. redis的五种数据类型及常见操作
  5. mysql5 7选路径_MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径
  6. 189. 旋转数组 golang
  7. leetcode 674. 最长连续递增序列
  8. mysql按字段同步_MySQL同步(一) 基础知识
  9. ubuntu tftp 服务器故障排除一例
  10. C#通过反射动态加载dll,读取module、类、方法、特性,并通过反射+简单工厂+配置文件 实现ioc
  11. javascript不定参数
  12. 海南工会云会员认证_“网上工会”大普惠全面升级 全体会员共享生活大福利...
  13. javascript 自带函数 读取json文件
  14. 苹果系统安装驱动的五种方法
  15. 个人学习笔记附Markdown格式下载
  16. 【论文笔记】基于强化学习的机器人手臂仿人运动规划方法
  17. 有哪些业务会用到物理服务器?
  18. Spring Boot整合Shiro + Springboot +vue
  19. 与小卡特一起学python 第18章 一种新的输入-事件
  20. java对于微信平台语音接收以及处理,语音下载以及arm格式转换MP3

热门文章

  1. FBX文件导入Unity3d贴图文件丢失解决方案
  2. Android 可任意位置移动的悬浮窗
  3. 午后札记(2011.6.4)
  4. ant design vue treeDefaultExpandAll 更换数据后没有自动展开
  5. [转载]Word中大表格正确跨页断行的设置
  6. SSM毕设项目风聆精酿啤酒智能销控一体系统udd8a(java+VUE+Mybatis+Maven+Mysql)
  7. 菊花厂骚操作:让你们智商都为 0
  8. 返回的数据不符合规范,正确的成功状态码 (code) 应为:0解决方案
  9. c++中vector容器(维克多配98k ^_^)
  10. 算法设计与分析----二分搜索(递归)