最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php的sso單點登錄實現(xiàn)方法

 更新時間:2015年01月08日 08:53:00   投稿:shichen2014  
這篇文章主要介紹了php的sso單點登錄實現(xiàn)方法,實例分析了sso單點登錄的原理與具體實施步驟,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php的sso單點登錄實現(xiàn)方法。分享給大家供大家參考。具體分析如下:

這里詳細(xì)講到了幾點:
1、點擊登錄跳轉(zhuǎn)到SSO登錄頁面并帶上當(dāng)前應(yīng)用的callback地址
2、登錄成功后生成COOKIE并將COOKIE傳給callback地址
3、callback地址接收SSO的COOKIE并設(shè)置在當(dāng)前域下再跳回到應(yīng)用1即完成登錄
4、再在應(yīng)用程序需要登錄的地方嵌入一個iframe用來實時檢測登錄狀態(tài),代碼如下:
index.php 應(yīng)用程序頁面:

復(fù)制代碼 代碼如下:
<?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地址用于回調(diào)設(shè)置cookie
 
if(isset($_COOKIE['sign'])){ 
    exit("歡迎您{$_COOKIE['sign']} <a href="login.php?logout">退出</a>"); 
}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登錄頁面:
復(fù)制代碼 代碼如下:
<?php 
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'])){ 
?>
 
<form method="post"> 
<p>用戶名:<input type="text" name="username" /></p> 
<p>密  碼:<input type="password" name="password" /></p> 
<input type="hidden" name="callback" value="<?php echo $_GET['callback']; ?>" /> 
<input type="submit" value="登錄" /> 
</form>
 
 
<?php 
}else{ 
    $query = http_build_query($_COOKIE); 
    echo "系統(tǒng)檢測到您已登錄 {$_COOKIE['sign']} <a href="{$_GET['callback']}?{$query}">授權(quán)</a> <a href="?logout">退出</a>"; 

?>

callback.php 回調(diào)頁面用來設(shè)置跨域COOKIE:
復(fù)制代碼 代碼如下:
<?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 用來檢測登錄狀態(tài)的頁面,內(nèi)嵌在頁面的iframe中:
復(fù)制代碼 代碼如下:
<?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程序設(shè)計有所幫助。

相關(guān)文章

  • PHP Memcached應(yīng)用實現(xiàn)代碼

    PHP Memcached應(yīng)用實現(xiàn)代碼

    在很多場合,我們都會聽到 memcached 這個名字,但很多同學(xué)只是聽過,并沒有用過或?qū)嶋H了解過,只知道它是一個很不錯的東東。這里簡單介紹一下,memcached 是高效、快速的分布式內(nèi)存對象緩存系統(tǒng),主要用于加速 WEB 動態(tài)應(yīng)用程序。
    2010-02-02
  • PHP 使用openssl 擴(kuò)展實現(xiàn)公鑰加密的方法

    PHP 使用openssl 擴(kuò)展實現(xiàn)公鑰加密的方法

    下面小編就為大家分享一篇PHP 使用openssl 擴(kuò)展實現(xiàn)公鑰加密的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • PHP實現(xiàn)惡意DDOS攻擊避免帶寬占用問題方法

    PHP實現(xiàn)惡意DDOS攻擊避免帶寬占用問題方法

    這篇文章主要介紹了PHP實現(xiàn)惡意DDOS攻擊避免帶寬占用問題方法,本文介紹的是一個簡單方法,需要的朋友可以參考下
    2015-05-05
  • PHP的魔術(shù)常量__METHOD__簡介

    PHP的魔術(shù)常量__METHOD__簡介

    這篇文章主要介紹了PHP的魔術(shù)常量__METHOD__簡介,使用__METHOD__可以獲取類中的方法名稱,PHP5之后新增的魔術(shù)常量,需要的朋友可以參考下
    2014-07-07
  • PHP中數(shù)組的三種排序方法分享

    PHP中數(shù)組的三種排序方法分享

    PHP中數(shù)組的三種排序方法,主要包括冒泡排序法、選擇排序法、插入排序法,需要的朋友可以參考下
    2012-05-05
  • PHPMyAdmin 快速配置方法

    PHPMyAdmin 快速配置方法

    今天想提一下如何配置PHPMyAdmin,因為在開發(fā)者,是比較普遍用到的。
    2009-05-05
  • 常用的PHP加密解密函數(shù)分享

    常用的PHP加密解密函數(shù)分享

    項目中有時我們需要使用PHP將特定的信息進(jìn)行加密,也就是通過加密算法生成一個加密字符串,這個加密后的字符串可以通過解密算法進(jìn)行解密,本文給大家分享了一些比較經(jīng)典的PHP加密解密函數(shù)代碼,需要的朋友可以參考下
    2023-09-09
  • php生成xml簡單實例代碼

    php生成xml簡單實例代碼

    使用PHP DOMDocument創(chuàng)建動態(tài)XML文件
    2009-12-12
  • PhpDocumentor 2安裝以及生成API文檔的方法

    PhpDocumentor 2安裝以及生成API文檔的方法

    phpDocumentor 2是一個可以分析php源代碼和注釋塊并生成文檔的程序。基于phpdocumentor 1和javadoc啟發(fā)而來,它持續(xù)創(chuàng)新的使用了一些新技術(shù)和支持php的新特性。
    2014-05-05
  • 自己寫的兼容低于PHP 5.5版本的array_column()函數(shù)

    自己寫的兼容低于PHP 5.5版本的array_column()函數(shù)

    這篇文章主要介紹了自己寫的兼容低于PHP 5.5版本的array_column()函數(shù),array_column是PHP 5.5新增函數(shù),有時在低版本中也可能要用到,需要的朋友可以參考下
    2014-10-10

最新評論

辽宁省| 金山区| 桂阳县| 抚顺市| 彰化县| 郑州市| 镇原县| 鹤壁市| 武威市| 黔西| 洛隆县| 天峻县| 临潭县| 固原市| 视频| 饶阳县| 农安县| 正定县| 赤峰市| 方正县| 太湖县| 洮南市| 万荣县| 车致| 陕西省| 拜泉县| 甘孜| 焦作市| 郁南县| 昌图县| 巴东县| 阳城县| 石景山区| 绥江县| 洪泽县| 买车| 苏尼特右旗| 那曲县| 昆明市| 东兴市| 增城市|