簡單實現SSO

方案一:原理:基於SSO Server 端的登陸狀況,跳轉至SOO-client的各個端。 每次返回一個 ticker 隨機票據值識別。php

  1. 配置服務端
  2. 執行 :git clone https://github.com/234146326/sso-server.git && cd sso-server && composer install  ;
  3. 配置apache or nginx  目錄  app_path / public
  4. 完成服務端 配置請查看README.MD
  5. 配置客戶端
  6. 如例1:基於Thinkphp引入sso client  ——  執行命令: composer require xuying/sso-client
  7. 根據需求在指定位置添加:

            //TODO 實例執行
            $client = new \SsoSdk\SsoClient();//實例客戶端
            $client->run();//運行
    

      

    完成; 《基於需求作一些重寫便可知足。》

 

方案二:原理:nginx

 

  • 第一次請求服務端方法 Aattach() 設置緩存了並生成了SessionID做爲KEY =>某終端做爲Session_id()做爲VALUE;
  • 第二請求服務端 從會話密鑰生成會話ID; 添加到CURL Header Authorization(Authorizations):內;服務端解碼Id後,獲得SessionID ,而後驗證緩存是否存在;決定會話成立與否。
  • 服務端 驗證用戶與密碼 保存SSO_USER 到 Session 。用於下次獲取用戶信息驗證。即基於代理會話緩存 + Session 用戶數據 = 數據認證交互;
  • 完成。
composer require xuying/jasny-sso-server
  1. composer init 
  2. 填寫一個包名稱後,不停回車便可;
  3. composer require xuying/jasny-sso-server
  4. 複製 vendor/xuying/jasny-sso-server/examples .到當前目錄。複製 vendor/xuying/jasny-sso-server/index.php 到當前路徑;
  5. 配置apache 或者 nginx 當前目錄作server 。配置examples/ajax-broker 爲B站。配置C站 examples/broker
  6. 完成;
相關文章
相關標籤/搜索