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

php實現(xiàn)的SSO單點登錄系統(tǒng)接入功能示例分析

 更新時間:2016年10月12日 10:02:33   作者:angel  
這篇文章主要介紹了php實現(xiàn)的SSO單點登錄系統(tǒng)接入功能,簡單分析了SSO單點登錄系統(tǒng)接入的原理與php相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了php實現(xiàn)的SSO單點登錄系統(tǒng)接入功能。分享給大家供大家參考,具體如下:

SSO英文全稱Single Sign On,單點登錄。SSO是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。它包括可以將這次主要的登錄映射到其他應用中用于同一個用戶的登錄的機制。它是目前比較流行的企業(yè)業(yè)務整合的解決方案之一,下面我們來看看吧。

簡單講一下 SSO 單點登錄系統(tǒng)的接入的原理,前提是系統(tǒng)本身有完善的用戶認證功能,即基本的用戶登錄功能,那做起來就很方便了。

SSO 登錄請求接口往往是接口加上一個回調地址,訪問這個地址會跳轉到回調地址并帶上一個 ticket 參數(shù),拿著這個 ticket 參數(shù)再請求接口可以獲取到用戶信息,如果存在用戶則自動登錄,不存在就新增用戶并登錄。

比如這個 SSO 模型實現(xiàn)了兩個方法,一個是獲取接口 url,一個是憑 ticket 獲取用戶信息:

interface SSOLogin
{
  /**
   * 獲取登錄用戶信息
   * @param $ticket
   * @return mixed
   */
  public function getInfoFromTicket($ticket);
  /**
   * 單點登錄授權地址
   * @return mixed
   */
  public function getAuthUrl();
}

再來看看控制器的主要方法,比如回調地址是跳轉到控制器 http://www.example.com/sso/check?ticket=xxxx

/**
 * 檢測是否單點登錄
 * @return bool|string
 */
public function actionCheck()
{
  $ticket = Yii::$app->getRequest()->get('ticket');
  if (!$ticket) {
    return $this->renderAuthError('請先授權', sprintf('<a href="%s">點擊登錄單點登錄系統(tǒng)</a>', SSOlogin::getInstance()->getAuthUrl()));
  }
  $userInfo = SSOlogin::getInstance()->getInfoFromTicket($ticket);
  if (empty($userInfo['username'])) {
    return $this->renderAuthError('請先授權', sprintf('<a href="%s">點擊登錄單點登錄系統(tǒng)</a>', SSOlogin::getInstance()->getAuthUrl()));
  }
  $username = $this->getUserName($userInfo['username']);
  $user = User::find()->canLogin()->username($username)->one();
  if (!$user) {
    $newUser = [];
    $newUser['username'] = $userInfo['username'];
    $newUser['email'] = $this->getUserName($userInfo['username']);
    $newUser['role'] = User::ROLE_DEV;
    $newUser['is_email_verified'] = 1;
    $newUser['realname'] = $userInfo['truename'];
    $user = $this->addUser($newUser);
  }
  $isLogin = Yii::$app->user->login($user, 3600 * 24 * 30);
  if ($isLogin) {
    $this->redirect('/task/index');
  }
  return true;
}

大概看看這個控制器邏輯就明白了。SSO 接口起到的作用就是獲取用戶信息,拿這個用戶信息跟系統(tǒng)用戶表對比,存在用戶則進行登錄,不存在創(chuàng)建用戶并登錄。

這是一個內部的單點系統(tǒng),集成到后臺,可能其他的 SSO 跟這不太一樣,但基本原理過程差不多。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP網絡編程技巧總結》、《php curl用法總結》、《php socket用法總結》、《php正則表達式用法總結》、《php字符串(string)用法總結》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)學運算技巧總結》、《php面向對象程序設計入門教程》、《PHP數(shù)據結構與算法教程》、《php程序設計算法總結》及《php常見數(shù)據庫操作技巧匯總

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • PHP設置進度條的方法

    PHP設置進度條的方法

    這篇文章主要介紹了PHP設置進度條的方法,實例分析了php實現(xiàn)進度條顯示進度狀態(tài)的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • php skymvc 一款輕量、簡單的php

    php skymvc 一款輕量、簡單的php

    skymvc是一款輕量、簡單的php mvc框架,借鑒了各大框架的設計,采納了很多優(yōu)秀的函數(shù)及類,skymvc不鼓勵傻瓜式的開發(fā),更注重給予開發(fā)者更多的思考空間。
    2011-06-06
  • 淺談php中mysql與mysqli的區(qū)別分析

    淺談php中mysql與mysqli的區(qū)別分析

    本篇文章是對php中mysql與mysqli的區(qū)別進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php與python實現(xiàn)的線程池多線程爬蟲功能示例

    php與python實現(xiàn)的線程池多線程爬蟲功能示例

    這篇文章主要介紹了php與python實現(xiàn)的線程池多線程爬蟲功能,結合實例形式分析了php與python實現(xiàn)線程池多線程爬蟲的完整實現(xiàn)方法,需要的朋友可以參考下
    2016-10-10
  • PHP ADODB實現(xiàn)事務處理功能示例

    PHP ADODB實現(xiàn)事務處理功能示例

    這篇文章主要介紹了PHP ADODB實現(xiàn)事務處理功能,結合實例形式分析了php使用ADODB進行事務提交與回滾處理等相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • PHP類與對象中的private訪問控制的疑問

    PHP類與對象中的private訪問控制的疑問

    在手冊中遇到了一個沒想明白的問題,記錄一下,方便需要的朋友
    2012-11-11
  • php的一個簡單加密解密代碼

    php的一個簡單加密解密代碼

    分享一個php加密解密的類,在用戶注冊的時候發(fā)送郵件驗證的時候估計會用的到的,代碼如下
    2014-01-01
  • php實現(xiàn)將二維關聯(lián)數(shù)組轉換成字符串的方法詳解

    php實現(xiàn)將二維關聯(lián)數(shù)組轉換成字符串的方法詳解

    這篇文章主要介紹了php實現(xiàn)將二維關聯(lián)數(shù)組轉換成字符串的方法,涉及php數(shù)組遞歸遍歷、轉換、去重、拼接等相關操作技巧,需要的朋友可以參考下
    2017-07-07
  • PHP類相關知識點實例總結

    PHP類相關知識點實例總結

    這篇文章主要介紹了PHP類相關知識點,結合實例形式總結分析了php類相關的最終類、最終方法、抽象類、抽象方法、接口、重載、魔術方法等相關概念與操作技巧,需要的朋友可以參考下
    2016-09-09
  • php查詢內存信息操作示例

    php查詢內存信息操作示例

    這篇文章主要介紹了php查詢內存信息操作,涉及php使用memory_get_usage()函數(shù)及memory_get_peak_usage()函數(shù)獲取系統(tǒng)內存信息相關操作技巧,需要的朋友可以參考下
    2019-05-05

最新評論

桦甸市| 涞水县| 永康市| 靖州| 合水县| 灵寿县| 贡嘎县| 青川县| 北川| 云浮市| 宣化县| 呼伦贝尔市| 京山县| 科技| 内乡县| 渝北区| 米脂县| 阜宁县| 黔江区| 九龙县| 西平县| 来宾市| 施秉县| 塔河县| 微山县| 泰来县| 桃江县| 从化市| 苍南县| 健康| 蓬安县| 阳新县| 喀喇沁旗| 十堰市| 娄烦县| 高碑店市| 长兴县| 朔州市| 丹寨县| 抚宁县| 铜鼓县|