使用OAuth 2.0的API访问不起作用

时间:2014-09-02 17:52:24

标签: php laravel oauth laravel-4 oauth-2.0

我正在使用Laravel框架在PHP中创建一些API。客户端将使用我的库访问这些API。我想使用OAuth 2.0来保护这些API。这就是我到目前为止所做的:

我正在使用这个Laravel包来执行OAuth:https://github.com/lucadegasperi/oauth2-server-laravel

我在下面添加了oauth2.php配置文件:

'client_credentials' => array(
'class'            => 'League\OAuth2\Server\Grant\ClientCredentials',
'access_token_ttl' => 3600,
),

我的Routes.php中有以下代码:

Route::get('oauth/access_token', function()
{
return AuthorizationServer::performAccessTokenFlow();
});

Route::get('secure-route', array('before' => 'oauth:scope1,scope2', function(){
return "oauth secured route";
}));

当我使用以下网址访问第一条路线时:

http://example.com/crm/public/index.php/oauth/access_token?grant_type=client_credentials&client_id=1&client_secret=acadgildsecret&state=123456789&scope=scope1

我得到以下回复:

{
access_token: "VQzbxeOYCaBvOKkAasEu6w3i3XLBSZgghnc8q8df",
token_type: "bearer",
expires: 1409681582,
expires_in: 3600
}

然后我使用此访问令牌使用以下URL访问我的API:

http://example.com/crm/public/index.php/secure-route?access_token=%20%27VQzbxeOYCaBvOKkAasEu6w3i3XLBSZgghnc8q8df%27

此时我收到一个未经授权的错误:

{
status: 401,
error: "unauthorized",
error_message: "Access token is not valid"
}

我一直在试图找出造成这种情况的原因,但一直无法做到。任何帮助将不胜感激。

0 个答案:

没有答案