最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SSO單點(diǎn)登錄的PHP實(shí)現(xiàn)方法(Laravel框架)

 更新時間:2016年03月23日 10:05:13   作者:ShowStyle  
這篇文章主要介紹了SSO單點(diǎn)登錄的PHP實(shí)現(xiàn)方法(Laravel框架) 的相關(guān)資料,需要的朋友可以參考下

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

簡單說一下我的邏輯,我也不知道我理解sso對不對。

假如三個站點(diǎn) a.baidu.com b.baidu.com c.baidu.com

a.baidu.com 作為驗(yàn)證用戶登錄賬戶。

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

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

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

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

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

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

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

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.我這個實(shí)現(xiàn),我自己都不知道是不是對的,這是我根據(jù)原理寫出來的。

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

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

相關(guān)文章

  • 解決laravel 5.1報錯:No supported encrypter found的辦法

    解決laravel 5.1報錯:No supported encrypter found的辦法

    這篇文章主要給大家介紹了關(guān)于解決laravel 5.1報錯:No supported encrypter found的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • thinkphp瀏覽歷史功能實(shí)現(xiàn)方法

    thinkphp瀏覽歷史功能實(shí)現(xiàn)方法

    這篇文章主要介紹了thinkphp瀏覽歷史功能實(shí)現(xiàn)方法,可實(shí)現(xiàn)瀏覽器的瀏覽歷史功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • php生成靜態(tài)頁面的簡單示例

    php生成靜態(tài)頁面的簡單示例

    這篇文章主要介紹了php生成靜態(tài)頁面的簡單示例,需要的朋友可以參考下
    2014-04-04
  • 深入PHP運(yùn)行環(huán)境配置的詳解

    深入PHP運(yùn)行環(huán)境配置的詳解

    本篇文章是對PHP運(yùn)行環(huán)境配置進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • laravel 自定義常量的兩種方案

    laravel 自定義常量的兩種方案

    今天小編就為大家整理了一篇laravel 自定義常量的兩種方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • CodeIgniter配置之database.php用法實(shí)例分析

    CodeIgniter配置之database.php用法實(shí)例分析

    這篇文章主要介紹了CodeIgniter配置之database.php用法,結(jié)合實(shí)例形式較為詳細(xì)的分析總結(jié)了CodeIgniter常用的數(shù)據(jù)庫連接方式,需要的朋友可以參考下
    2016-01-01
  • smarty簡單入門實(shí)例

    smarty簡單入門實(shí)例

    這篇文章主要介紹了smarty簡單入門實(shí)例,包括了配置文件的用法與模板文件的使用,非常具有實(shí)用價值,需要的朋友可以參考下
    2014-11-11
  • Yii2框架BootStrap樣式的深入理解

    Yii2框架BootStrap樣式的深入理解

    Yii2框架默認(rèn)采用了bootstrap作為CSS風(fēng)格,各種視圖類組件都如此。這篇文章主要介紹了Yii2框架BootStrap樣式理解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • php的zip解壓縮類pclzip使用示例

    php的zip解壓縮類pclzip使用示例

    PclZip是一個很強(qiáng)大的壓縮與解壓縮zip文件的PHP類,這篇文章主要介紹了PclZip的使用方法
    2014-03-03
  • PHP實(shí)現(xiàn)字母數(shù)字混合驗(yàn)證碼功能

    PHP實(shí)現(xiàn)字母數(shù)字混合驗(yàn)證碼功能

    PHP實(shí)現(xiàn)字母數(shù)字混合驗(yàn)證碼,支持自定義驗(yàn)證碼、驗(yàn)證碼圖片、寬度、高度、個數(shù)、背景圖片,本文給大家分享實(shí)例代碼,感興趣的朋友跟隨小編一起看看吧
    2019-07-07

最新評論

阜新| 友谊县| 兴安县| 方城县| 法库县| 沈丘县| 荣昌县| 怀仁县| 交城县| 金乡县| 辰溪县| 纳雍县| 丰县| 光泽县| 日照市| 商都县| 朔州市| 汶川县| 法库县| 中山市| 扶沟县| 平安县| 泰宁县| 徐州市| 东乌| 永修县| 富宁县| 翁源县| 乌兰县| 英山县| 伊金霍洛旗| 区。| 柘荣县| 桓仁| 二连浩特市| 鸡泽县| 巴青县| 天台县| 井冈山市| 顺义区| 龙江县|