Laravel 护照回调路线 returns 空
Laravel Passport callback route returns null
我正在学习 Laravel Passport 和开发 OAuth2 服务器。创建客户端后,我进行了以下调用以获取授权码
Route::get('/', function (Request $request) {
$request->session()->put('state', $state = Str::random(40));
$query = http_build_query([
'client_id' => <Client_Id>,
'redirect_uri' => 'http://<Consumer_App_URL>/callback',
'response_type' => 'code',
'scope' => '',
'state' => $state,
]);
return redirect('http://<OAuth2_Server_URL>/oauth/authorize?'.$query);
});
调用按预期工作,我得到了授权码,但是当重定向到这样定义的回调路由时
Route::get('/callback', function (Request $request) {
$state = $request->session()->pull('state');
throw_unless(
strlen($state) > 0 && $state === $request->state,
InvalidArgumentException::class
);
$response = Http::asForm()->post('http://<OAuth2_Server_URL>/oauth/token', [
'grant_type' => 'authorization_code',
'client_id' => <Client_Id>,
'client_secret' => '<Cient_Secret>',
'redirect_uri' => 'http://consumer/callback',
'code' => $request->code,
]);
return $response->json();
});
没有成功,响应实例为空。我不知道可能是什么问题。
所以我终于解决了问题,我只需要运行 php artisan config:cache
. [reference]
我正在学习 Laravel Passport 和开发 OAuth2 服务器。创建客户端后,我进行了以下调用以获取授权码
Route::get('/', function (Request $request) {
$request->session()->put('state', $state = Str::random(40));
$query = http_build_query([
'client_id' => <Client_Id>,
'redirect_uri' => 'http://<Consumer_App_URL>/callback',
'response_type' => 'code',
'scope' => '',
'state' => $state,
]);
return redirect('http://<OAuth2_Server_URL>/oauth/authorize?'.$query);
});
调用按预期工作,我得到了授权码,但是当重定向到这样定义的回调路由时
Route::get('/callback', function (Request $request) {
$state = $request->session()->pull('state');
throw_unless(
strlen($state) > 0 && $state === $request->state,
InvalidArgumentException::class
);
$response = Http::asForm()->post('http://<OAuth2_Server_URL>/oauth/token', [
'grant_type' => 'authorization_code',
'client_id' => <Client_Id>,
'client_secret' => '<Cient_Secret>',
'redirect_uri' => 'http://consumer/callback',
'code' => $request->code,
]);
return $response->json();
});
没有成功,响应实例为空。我不知道可能是什么问题。
所以我终于解决了问题,我只需要运行 php artisan config:cache
. [reference]