ホームページ > php教程 > PHP开发 > SSOシングルサインオンのPHP実装方法(Laravelフレームワーク)

SSOシングルサインオンのPHP実装方法(Laravelフレームワーク)

高洛峰
リリース: 2016-12-28 16:12:17
オリジナル
2302 人が閲覧しました

Laravel は、シンプルでエレガントな PHP Web 開発フレームワーク (PHP Web フレームワーク) です。ヌードルのような乱雑なコードから解放され、完璧なネットワーク APP を構築するのに役立ち、コードの各行が簡潔で表現力豊かになります。

SSO を正しく理解しているかどうかわかりませんが、私のロジックを簡単に説明させてください。

3 つのサイト a.baidu.com b.baidu.com c.baidu.com

a.baidu.com が認証済みユーザーとしてアカウントにログインしているとします。

b と c はクライアント (サブシステム) として機能します。

b と c は、ログインする必要があるときに a にジャンプし、ログイン後にジャンプするリンクを示すパラメーター ソースを運びます。

a当サイトは通常のログイン方法(ユーザーパスワード認証)となっており、認証成功後に一部の処理が行われます。チケットは生成する必要がありますが、安全である限り、生成方法は関係ありません。次に、それをキャッシュに保存します。こちらでご質問がございましたら、後ほどまとめさせていただきます。ログインに成功したら、(url にジャンプします。

``` php private function getTicketUrl(\)source)
{
\(ticket = md5(time()+key); Cache::put(\)ticket, $user, 120);
$url = $source . '?ticket=' . $ticket;
return $url;
}
ログイン後にコピー

ステーション a がチケット (b.baidu.com?ticket=xxxxxxxxxxxxxxxx```) を持ってステーション b にジャンプするとします。

ステーション b はグローバル画像フィルターを作成します。これを受け入れます

B ステーション フィルター AppHttpMiddlewareCasAuthenticate コードで、チケットがあるかどうかを判断し、ログインしている場合は、チケットを取得します。 . ユーザー UID にログインします。

rreee

ロジックは完成しましたが、私の実装が正しいかどうかはわかりません
2。サイト b がサイト c にジャンプすると、サイト b の方がアクティブでセッションが常に存在し、サイト a のキャッシュ時間が終了している可能性が高いため、サイト b からサイト c にジャンプします。ログインを決定するためにサイト a にアクセスしましたが、失敗したことが判明したため、引き続きログインする必要があります。ビジネス モジュールは相関性が低く、任意にジャンプしないため、当面はこの問題を考慮しません。これは私にとっては確かによく考えていない質問です

SSO シングル サインオン (Laravel フレームワーク) の実装方法を紹介します

より多くの SSO 注文 クリックログインの PHP 実装方法 (Laravel フレームワーク) の関連記事は、PHP 中国語 Web サイトに注目してください

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート