php ssoシングルサインオン実装方法、phpssoシングルサインオン
この記事の例では、PHPのSSOシングルサインオンの実装方法を説明しています。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
ここでは、詳細に説明したいくつかのポイントを示します:
1. [ログイン] をクリックして SSO ログイン ページに移動し、現在のアプリケーションのコールバック アドレスを取得します
2. ログインに成功すると、COOKIEが生成され、コールバックアドレスに渡されます
3. コールバック アドレスは 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' // コールバック アドレスはコールバックに Cookie を設定するために使用されます
;
if(isset($_COOKIE['sign'])){
exit("ようこそ{$_COOKIE['sign']}
終了");
}その他{
echo 'まだログインしていません
ここをクリックしてログイン';
}
?>
if(isset($_POST['ユーザー名']) && isset($_POST['パスワード'])){
setcookie('sign',$_POST['username'],0,'');
header("場所:".$_POST['コールバック']."?sign={$_POST['ユーザー名']}");
}
if(emptyempty($_COOKIE['sign'])){
?>
<フォームメソッド="投稿">
ユーザー名:
パスワード:
フォーム>
}その他{
$query = http_build_query($_COOKIE);
echo "システムは、{$_COOKIE['sign']} へのログインを検出しました
承認 < ;a href="?logout">終了";
}
?>
callback.php コールバック ページは、クロスドメイン COOKIE を設定するために使用されます:
コードをコピーします
コードは次のとおりです:
header('Content-Type:text/html; charset=utf-8');
if(空の空($_GET)){
exit('まだログインしていません');
}その他{
foreach($_GET as $key=>$val){
setcookie($key,$val,0,'');
}
header("場所: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}";
}その他{
出る
}
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/939404.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/939404.html技術記事 PHPのSSOシングルサインインの実装方法、phpssoシングルサインイン この記事では、PHPのSSOシングルサインインの実装方法について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです。詳しく話しましょう...