源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php的sso单点登录实现方法

  • 时间:2021-11-08 23:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php的sso单点登录实现方法
本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下: 这里详细讲到了几点: 1、点击登录跳转到SSO登录页面并带上当前应用的callback地址 2、登录成功后生成COOKIE并将COOKIE传给callback地址 3、callback地址接收SSO的COOKIE并设置在当前域下再跳回到应用1即完成登录 4、再在应用程序需要登录的地方嵌入一个iframe用来实时检测登录状态,代码如下: index.php 应用程序页面:
[url=login.php?logout] }else{      echo '您还未登录 <a href="'.$sso_address.'?callback='.$callback_address.'">点此登录</a>';  }  ?> <iframe src="<?php echo $sso_address ?>?callback=<?php echo $callback_address ?>" frameborder="0"  width="0" height="0"></iframe>
login.php SSO登录页面: callback.php 回调页面用来设置跨域COOKIE:
[u]复制代码[/u] 代码如下:
<?php  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中:
[u]复制代码[/u] 代码如下:
<?php 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;  }  ?> <html><script type="text/javascript">top.location.href="<?php echo $callback; ?>";</script></html>
希望本文所述对大家的php程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部