<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # `1.CAS`單點登陸原理 關于CAS單點登陸原理,本人查到一篇講解的比較詳細的文章:[https://www.cnblogs.com/lihuidu/p/6495247.html](https://www.cnblogs.com/lihuidu/p/6495247.html)此文章講解的非常通俗易懂。 # `2.搭建`CAS SSO`SERVER服務端 關于此類教程文章推薦查看:[https://www.cnblogs.com/jpeanut/tag/CAS/](https://www.cnblogs.com/jpeanut/tag/CAS/) # `3.下載`phpCAS`客戶端 1. phpCAS客戶端下載:[https://github.com/apereo/phpCAS](https://www.cnblogs.com/jpeanut/tag/CAS/) 2. phpCAS客戶端配置的注意事項說明:[https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252517/phpCAS](https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252517/phpCAS) 3. phpCAS客戶端的要求說明:[https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252625/phpCAS+requirements](https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252625/phpCAS+requirements) ***注意:PHP配置文件php.ini需要開啟php\_curl,找到 ;extension=php\_curl.dll ,將該句前面的分號去掉即可,改為 extension=php\_curl.dll*** # `4. phpCAS客戶端配置 下載完成之后可得到一個壓縮包文件,解壓之后文件夾存在`source`,`source`文件夾下包含`CAS`文件夾和`CAS.php`文件。 創建自己的PHP項目,至于用什么框架,和開發工具,這兒就不說了,各有各的需求。將同步下來的代碼的`source`目錄拷貝到項目中,可以改名`phpCAS`之類的,以作區分。 項目中怎么使用呢?之后我們開始講解如何開發配置: 1. 將`source`文件夾放到開發項目的根目錄下; 2. 在項目根目錄下新建`config.php`文件,用于CAS配置; 3. 在項目根目錄下新建`index.php`文件,由于首頁訪問; ## config.php文件代碼如下: ``` <?php /** * ============================================== * Created by SaiJia Technology. * Author: ZhiHuaWei <zhihua_wei@foxmail.com> * Date: 2019/9/3 11:04 * Project: PHP對接CAS單點登陸系統 * Power: CAS配置文件 * ============================================== */ # 1 CAS Server 主機域名 # 此配置是你搭建的CAS SSO SERVER服務的域名 $cas_host = 'www.qingshanfrom.xyz'; # 2 CAS Server 路徑 # 此配置是你搭建的CAS SSO SERVER服務的路徑 $cas_context = '/cas'; // 3 CAS server 端口 # 此配置是你搭建的CAS SSO SERVER服務的端口 $cas_port = 8443; // 4 CAS server 證書 # 此配置是你搭建的CAS SSO SERVER服務的證書文件 $cas_server_ca_cert_path = './ssoserver.cer'; ``` # 5.PHP開發對接 ## index.php文件代碼如下: ``` <?php /** * ============================================== * Created by SaiJia Technology. * Author: ZhiHuaWei <zhihua_wei@foxmail.com> * Date: 2019/9/3 11:04 * Project: PHP對接CAS單點登陸系統 * Power: 主文件 * ============================================== */ # 1 引入配置文件 | CAS.PHP文件 require_once 'config.php'; require_once 'phpCas/CAS.php'; # 2 開啟phpCAS debug phpCAS::setDebug(); # 3 初始化phpCAS,參數說明: # a) CAS協議版本號 # b) cas server的域名 # c) cas server的端口號 # d) cas server的項目訪問路徑 phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context); # 4 開啟設置證書驗證。如果是開發環境可將此注釋,如果是生產環境為了安全性建議將此開啟 // phpCAS::setCasServerCACert($cas_server_ca_cert_path); # 5 不為CAS服務器設置SSL驗證 # 為了快速測試,您可以禁用CAS服務器的SSL驗證。此建議不建議用于生產環境。驗證CAS服務器對CAS協議的安全性至關重要! phpCAS::setNoCasServerValidation(); # 6 這里會檢測服務器端的退出的通知,就能實現php和其他語言平臺間同步登出了 # 處理登出請求。cas服務端會發送請求通知客戶端。如果沒有同步登出,可能是服務端跟客戶端無法通信(比如我的客戶端是localhost, 服務端在云上) phpCAS::handleLogoutRequests(); # 7 進行CAS服務驗證,這個方法確保用戶是否驗證過,如果沒有驗證則跳轉到驗證界面 # 這個是強制認證模式,查看 CAS.php 可以找到幾種不同的方式: # a) forceAuthentication - phpCAS::forceAuthentication(); # b) checkAuthentication - phpCAS::checkAuthentication(); # c) renewAuthentication - phpCAS::renewAuthentication(); # 根據自己需要調用即可。 $auth = phpCAS::forceAuthentication(); if ($auth) { # 8 驗證通過,或者說已經登陸系統,可進行已經登陸之后的邏輯處理... # 獲得登陸CAS用戶的名稱 $user_name = phpCAS::getUser(); echo $user_name . '已經成功登陸...<br>'; # 9 你還可打印保存的phpCAS session信息 print_r($_SESSION); # 10 還可獲取有關已驗證用戶的屬性,例如:$uid = phpCAS::getAttribute('id'); # 關于此部分用戶屬性數據設置說明:https://my.oschina.net/liucao/blog/479755 $attr = phpCAS::getAttributes(); print_r($attr); # 11 進行退出的相關操作 # 在你的PHP項目中處理完相應的退出邏輯之后,還需執行phpCAS::logout()進行CAS系統的退出 # 當我們訪問cas服務端的logout的時候,cas服務器會發送post請求到各個已經登錄的客戶端 //phpCAS::logout(); # 登出方法一:登出成功后跳轉的地址 //phpCAS::setServerLoginUrl("https://192.168.1.120:80/cas/logout?embed=true&service=http://localhost/phpCasClient/user.php?a=login"); //phpCAS::logout(); # 登出方法二:退出登錄后返回地址 //$param = array("service" => "http://cas.wzh.com"); //phpCAS::logout($param); } else { # 12 驗證未通過,說明未進行登陸 # 將會跳轉回你配置的CAS SSO SERVER服務的域名; # 例如:https://www.qingshanfrom.xyz:8443/cas/login?service=http%3A%2F%2Fcas.wzh.com%2F # 在你輸入正確的用戶名和密碼之后CAS會自動跳轉回service=http%3A%2F%2Fcas.wzh.com%2F此地址 # 在此你可以處理驗證未通過的各種邏輯 echo '還未登陸,跳轉到CAS進行登陸...<br>'; } ```## 注意 1. 如果無法獲取Attributes,請將`CAS_VERSION_2_0`改成`CAS_VERSION_3_0`,相關設置說明:[https://my.oschina.net/liucao/blog/479755](https://my.oschina.net/liucao/blog/479755); 2. 設置`phpCAS::handleLogoutRequests();`后不能同步退出,可能是因為cas服務端無法連接測試環境的域名。當我們訪問cas服務端的logout的時候,cas服務器會發送post請求到各個已經登錄的客戶端; 3. `phpCAS::logout(['service'=>'http://cas.wzh.com']);`設置退出登錄后返回的頁面。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看