1. 程式人生 > >Oauth2.0 oauth2-server-php的使用Demo,怎麼連線redis/可實現thinkphp5/yii/Laravel中使用

Oauth2.0 oauth2-server-php的使用Demo,怎麼連線redis/可實現thinkphp5/yii/Laravel中使用

單點登入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');