1976年贪婪的嘴唇,韩国少妇激三级做爰2023电影,久久久久久精品国产三级涨奶,妖精漫画在线观看免费漫画下拉式

SSO單點登錄的PHP實現方法(Laravel框架)
來源:易賢網 閱讀:2996 次 日期:2016-08-31 16:13:56
溫馨提示:易賢網小編為您整理了“SSO單點登錄的PHP實現方法(Laravel框架)”,方便廣大網友查閱!

Laravel是一套簡潔、優雅的PHP Web開發框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP,而且每行代碼都可以簡潔、富于表達力。

簡單說一下我的邏輯,我也不知道我理解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);

}

邏輯算是完成了,但是有幾個疑問。

1.我這個實現,我自己都不知道是不是對的,這是我根據原理寫出來的。

2.假如b站現在跳轉到c站,由于b站活躍比較頻繁,session一直都在,而a站的緩存時間極有可能已經過期了,此時從b站跳轉到c站,c站跳轉到a站去判斷登陸,結果發現已經失效了,還是得登陸。所以這是有問題的,由于我們業務模塊相關性差,不會隨意跳轉,所以暫不考慮這樣的問題。但這確實是我的一個問題。我沒想清楚。

有關SSO單點登錄的PHP實現方法(Laravel框架),小編就給大家介紹這么多,希望對大家有所幫助!

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 焦作市| 华宁县| 林西县| 平原县| 班玛县| 北辰区| 莱西市| 江油市| 新竹市| 伊春市| 英德市| 内黄县| 镇雄县| 宣威市| 桃园市| 阿拉尔市| 井陉县| 突泉县| 额济纳旗| 抚顺市| 扎兰屯市| 和田县| 宁陕县| 宁南县| 邓州市| 克什克腾旗| 怀宁县| 新竹市| 荆州市| 喀喇沁旗| 大关县| 滨海县| 广宗县| 富平县| 黎川县| 乌苏市| 商城县| 东丰县| 华容县| 法库县| 德庆县|