Oauth2.0 oauth2-server-php的使用Demo,怎麼連線redis/可實現thinkphp5/yii/Laravel中使用
阿新 • • 發佈:2019-01-31
單點登入SSO
開發準備: 下載之後先執行:composer update
1.資料庫匯入
2.在service.php 設定資料庫資訊
3.notice:在host 設定 oauth2.com 指向本地
post引數:
client_id:testclient
client_secret:testpass
grant_type:client_credentials //授權模式
結果:
{ "access_token": "8f27b59bb071b296fc58b1679c22f6c40411b9e7", "expires_in": 60, "token_type": "Bearer", "scope": "trut" }
授權登入
1.先跳轉到一個授權頁面,並告訴授權伺服器,來授權的是誰,工作的是authorize.php;(這個過程就像qq授權)
點選授權
得到一個code
post引數:
client_id:testclient
client_secret:testpass
grant_type:authorization_code //授權模式
code:剛剛獲取的code
如果成功:
{ "access_token": "e07ff1efcf82d8351d4ea55b79d9d64a77239231", "expires_in": 3600, "token_type": "Bearer", "scope": null, "refresh_token": "e71c1b23f146f50cf1d3db721a64bf4efb845f2c" }
If you finish,Congratulations!!!!Welcome to the stars
在自己專案中使用(應該聰明的你,能夠舉一反三,在各種框架中使用)
composer require bshaffer/oauth2-server-php
如果用redis做儲存
composer require predis/predis:dev-master
在server.php 中新增 同時把pdo 連線的註釋掉
比如新增一個使用者的時候,同時也要更新redis 中的資料。這麼初始化一個clinetid 為testtest ,和pdo獲取的一樣
$predis = new \Predis\Client(['scheme' =>'tcp',' host' =>'localhost','port' =>6379]); $storage = new OAuth2\Storage\Redis($predis); $storage->setClientDetails('testtest', 'testpass', 'http://baidu.com/','client_credentials','trut');