PHP编程 SSO详细介绍及简单实例

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP SSO详解

第一种模式很简单,只需要将Cookie的域设置成多个应用的根域即可

第二种方式,也很简单,就是将所以应用的认证地址更换成同一个认证地址,每次查看是否在认证中心登陆,如果登陆了,给调用应用发放一个加密令牌即可

第三种跨域,就是来回跳转来回验证token略有麻烦

配置目录结构

服务器根目录下,新建三个项目目录:

|–/网站根目录/ |–|–/oa/ |–|–/BBS/ |–|–/blog/

在根目录下新建functions.PHP脚本文件,具体内容如下:

<PRe class="brush:PHp;">

/**

  • 获取登陆token
  • @param string $url 获取token的地址
  • 2017-01-03T13:08:43+0800
    */
    function getToken($url)
    {
    $bool = isLogin();
    if ($bool) {
    // 如果登陆了跳转到本站首页
    header('location: index.php');
    exIT();
    }

// 否则没有登陆,去另一个站点看是否登陆
header('location: '.$url);
}

// 校验令牌是否正确
function yzToken($domain)
{
$url = isset($_GET['url']) ? $_GET['url'] : '';
$username = isset($_GET['username']) ? $_GET['username'] : '';
$token = isset($_GET['token']) ? $_GET['token'] : '';

if (!empty($username) && !empty($token)) {
$salt = 'taoip';
$_token = md5($salt.$username);
// 校验第三方站点过来时的token是否正确
if ($_token == $token) {
// 设置跳转过来的网站的Cookie
setCook($username,$_token,$domain);
header('location: index.php');
}
}

}

// 设置cookie
function setCook($username,$_password,$domain)
{
// 校验成功,开始登陆
setcookie('username',$username,time()+3600,'/',$domain);
setcookie('token',$domain);
header('location: index.php');
}

// 判断是否登陆
function isLOGin()
{
$username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
$token = isset($_COOKIE['token']) ? $_COOKIE['token'] : '';
$salt = 'taoip';

$_token = md5($salt.$username);

if ($token == $_token) {
return true;
} else {
return false;
}
}

?>

脚本宝典总结

以上是脚本宝典为你收集整理的PHP编程 SSO详细介绍及简单实例全部内容,希望文章能够帮你解决PHP编程 SSO详细介绍及简单实例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:PHP编程SSO