Oauth2.0 oauth2-server-php的使用Demo,怎麼連線redis/可實現thinkphp5/yii/Laravel中使用
阿新 • • 發佈:2018-12-12
單點登入SSO
本片教程沒有華麗的說辭,只有實實在在的程式碼: https://github.com/liaoshengping/oauth2-php
如果你沒有接觸oauth2.0,先無腦用原生php的跑一邊,方便理解 Oauth2.0
開發準備: 下載之後先執行:composer update
1.資料庫匯入
2.在service.php 設定資料庫資訊
3.notice:在host 設定 oauth2.com 指向本地
獲取access_token http://oauth2.com/token.php
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授權)
http://oauth2.com/authorize.php?response_type=code&client_id=testtest&state=這個是你要帶的引數
點選授權
得到一個code
2.用這個code 去換 access_token http://oauth2.com/token.php
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');