ThinkPHP 结合 OAuth2.0
准备工作
第一我们得准备好OAuth2.0的源码包,下载地址点这里。
我们将下载好的源码包放在thinkphp的
vendor
文件夹下面。这里注意只要src
文件夹下的OAuth2
放入vendor
即可。如下图:
新建模块
oauth2.0
然后将其路由等信息配置完毕。
开始工作
- 首先还是在配置文件中把OAuth的PDO数据库配置完成
//OAuth数据库配置
'OAUTH_DB_HOST'=>'xxxxx.com',
'OAUTH_DB_NAME'=>'xxx',
'OAUTH_DB_USER'=>'xxx',
'OAUTH_DB_PWD'=>'xxxxxxxx',
- 新建
IndexController
作为本次学习的主控制器,注意本控制器请继承RestController
(thinkphp封装)
class IndexController extends RestController
- 新建
authorize
公共方法来处理用户的授权请求和换取code的工作
public function authorize(){
//默认response_type为code
$_GET['response_type'] = isset($_GET['response_type'])?$_GET['response_type']:'code';
//数据表字段为client_id指的是appid
isset($_GET['appid']) && $_GET['client_id'] = $_GET['appid'];
$oauth = new OAuthModel();
$request = \OAuth2\Request::createFromGlobals();
$response = new \OAuth2\Response();
if (!$oauth->server()->validateAuthorizeRequest(