ホームページ >バックエンド開発 >PHPチュートリアル >PHP SSO シングル サインオンとユーザー エクスペリエンスの完璧な組み合わせ
PHP SSO シングル サインオンとユーザー エクスペリエンスの完璧な組み合わせ
インターネットの急速な発展に伴い、人々はさまざまな Web サイトを使用する際に頻繁に登録を行う必要があります。ログインはユーザーの時間と労力を浪費するだけでなく、ユーザーが自分のアカウント番号とパスワードを忘れやすくなります。この問題を解決するために、シングル サインオン (SSO) テクノロジーが登場しました。関連する複数の Web サイトまたはアプリケーション間でユーザー情報を共有すると、ユーザーは 1 か所でログインし、ログインせずに他のアプリケーションにアクセスできるようになり、ユーザー エクスペリエンスが大幅に向上します。
PHP は Web 開発で広く使用されているスクリプト言語であり、高速かつ柔軟で、学習と使用が簡単です。この記事では、PHP を使用して SSO シングル サインオンを実装する方法を詳しく説明し、具体的なコード例で説明します。
1. シングル サインオンの原理とプロセス
シングル サインオンの実装は、次の手順に分けることができます。メイン サイトにアクセスしてログインを試行します。;
# #メイン サイト (sso.example.com):
// ユーザーログイン
function login($username, $password){
// 调用身份认证中心的接口验证用户身份 $authResult = callApi($authCenterUrl . '/login', ['username' => $username, 'password' => $password]); // 验证成功 if ($authResult['success']) { // 生成Token信息 $token = generateToken(); // 将Token信息保存在主站的Session中 $_SESSION['token'] = $token; // 通过Header方式将Token信息传给用户浏览器 header('Set-Cookie: token=' . $token . '; Domain=.example.com; Path=/;'); // 跳转到主站首页 header('Location: http://sso.example.com'); exit; } // 验证失败 // 弹出错误提示 echo '登录失败,请检查用户名和密码是否正确。';}
// 生成トークン情報
function generatedToken()
// 使用UUID生成Token信息 return uniqid();}
// ユーザーログアウト
function logout()
// 清除Session中的Token信息 unset($_SESSION['token']); // 调用身份认证中心的接口注销用户 callApi($authCenterUrl . '/logout'); // 跳转到主站首页 header('Location: http://sso.example.com'); exit;}
// インターフェースメソッドの呼び出し
function callApi($url, $data = [])
// 使用CURL函数调用接口 // ...}
?>
サブサイト (sub.example.com):
// メイン サイトのインターフェイスを呼び出してトークンを確認します。 information
$authResult = callApi('http://sso. example.com/check', [' token' => $token]);
// 検証成功
// 免登录访问子站 // ...
// 跳转至主站登录页 header('Location: http://sso.example.com/login'); exit;
}
以上がPHP SSO シングル サインオンとユーザー エクスペリエンスの完璧な組み合わせの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。