91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用PHP怎么實現一個SSO單點登錄功能

發布時間:2021-02-07 20:49:21 來源:億速云 閱讀:161 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用PHP怎么實現一個SSO單點登錄功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

假如三個站點 a.baidu.com b.baidu.com c.baidu.com

a.baidu.com 作為驗證用戶登錄賬戶。

b和c作為客戶端(子系統)。

b和c需要登錄的時候跳轉到a,并且攜帶參數source指明登陸后跳轉的鏈接。

a站點就是普通的登陸方式(校驗用戶密碼),校驗成功后做一些處理。需要生成一個ticket,具體怎么生成都可以,只要安全就可以了。然后存儲到Cache里面。這里有疑問,后面總結。登陸成功后直接跳轉到\(url就可以了。

 ``` php private function getTicketUrl(\)source)
{
\(ticket = md5(time()+key); Cache::put(\)ticket, $user, 120);
$url = $source . '?ticket=' . $ticket;
return $url;
}

假如說a站帶著ticket跳轉到b站(b.baidu.com?ticket=xxxxxxxxxxxxxxxx```)

b站做一個全局的過濾器,接受這個ticket然后請求a站驗證ticket是否為a生成的。

b站過濾器App\Http\Middleware\CasAuthenticate代碼,這里判斷是否有ticket并發送請求到a站校驗。如果是登陸的,則拿到用戶UID進行登陸。

public function handle($request, Closure $next)
{
$ticket = $request->input('ticket');
if ($ticket) {
$result = json_decode('http://a.baidu.com' . '/auth/check-ticket?ticket=' . $ticket), true);
if ($result['state'] == "SUCCESS") {
$request->session()->flush();
Auth::loginUsingId($result['result']['uid']);
return redirect(redirect()->getUrlGenerator()->current());
}
}
return $next($request);
}

上述就是小編為大家分享的使用PHP怎么實現一個SSO單點登錄功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 赤水市| 岑溪市| 长沙县| 壤塘县| 涿州市| 天台县| 罗田县| 安福县| 阿拉善盟| 尼木县| 永顺县| 鸡东县| 轮台县| 舟山市| 水城县| 银川市| 曲沃县| 锡林郭勒盟| 隆林| 七台河市| 太康县| 梧州市| 冷水江市| 洪雅县| 横峰县| 十堰市| 云霄县| 集贤县| 白朗县| 绿春县| 长沙市| 海兴县| 靖远县| 两当县| 孝昌县| 丹凤县| 鹰潭市| 洪雅县| 逊克县| 冕宁县|