我遵循了Laracast 中提到的确切步骤:Laravel 5.3 中的新增功能:Laravelapi authentication
Passport使用oauth2
.
我web.php
在客户/消费者项目中的文件如下所示:
use Illuminate\Http\Request;
Route::get('/', function () {
$query = http_build_query([
'client_id' => 2,
'redirect_uri' => 'http://offline.xyz.com/callback',
'response_type' => 'code',
'scope' => '',
]);
return redirect ('http://api.xyz.com/oauth/authorize?'.$query);
});
Route::get('/callback', function (Request $request){
$http= new GuzzleHttp\Client;
$response = $http->post('http://api.xyz.com/oauth/token',[
'form_params' => [
'grant_type' => 'authorization_code',
'client_id' => 2 ,
'client_secret' => 'tUGYrNeWCGAQt220n88CGoXVu7TRDyZ20fxAlFcL' ,
'redirect_uri' => 'http://offline.xyz.com/callback',
'code' => $request->code,
],
]);
return json_decode((string) $response->getBody(), true);
});
我正在获取我需要authorize
允许我的客户访问 api 的权限请求页面。但是,一旦我单击授权,我将被重定向到显示以下消息的页面:
{"error":"invalid_client","message":"Client authentication failed"}
如何解决这个问题?
我没有安装laravel/passport
在离线项目中。我错过了什么吗?我已经遵循并实施了视频教程中确切提到的内容。我是否必须包含我不知道的其他内容?(我对 oauth2 有非常基本的了解)。
如果有帮助,我正在尝试实现一个离线系统,当有互联网连接时,它会定期将数据发送到在线系统。所以我想我可以构建一个api
并发送post
包含要存储的信息的请求。