#laravel #laravel-passport
Вопрос:
Я пытаюсь создать access_token для своего API, но у меня проблема с отображением этого сообщения:
"error": "invalid_client",
"error_description": "Client authentication failed",
"message": "Client authentication failed"
Это мои данные запроса:
{
"username":"neal.jacobi@example.org",
"password":"test1234",
"grant_type":"password",
"client_id": "2",
"client_secret":"jScq3DMMeZctypnYb7f1ClEHyzybwTK1Yisqo09E"
}
Это моя таблица oauth_clients:
Комментарии:
1. Вы имеете
Request data
в виду, говоряheader
это ?
Ответ №1:
Вы пытаетесь добавить scope
в свой запрос данные.
{
"username":"neal.jacobi@example.org",
"password":"test1234",
"grant_type":"password",
"client_id": "2",
"client_secret":"jScq3DMMeZctypnYb7f1ClEHyzybwTK1Yisqo09E",
"scope" => ""
}
Если у вас возникнут какие-либо проблемы, скажите мне.
Комментарии:
1. когда я добавляю область, показываю unsupported_grant_type
2. с «областью применения» : «*» работа
Ответ №2:
Вам необходимо отправить следующее в теле запроса.
{
"username":"neal.jacobi@example.org",
"password":"test1234",
"grant_type":"password",
"client_id": "2",
"client_secret":"jScq3DMMeZctypnYb7f1ClEHyzybwTK1Yisqo09E"
}
Учетные данные клиента проверяются из тела запроса следующим способом.
// LeagueOAuth2ServerGrantAbstractGrant
// line 253
protected function getClientCredentials(ServerRequestInterface $request)
{
[$basicAuthUser, $basicAuthPassword] = $this->getBasicAuthCredentials($request);
$clientId = $this->getRequestParameter('client_id', $request, $basicAuthUser); // It is fetching from request body
if (is_null($clientId)) {
throw OAuthServerException::invalidRequest('client_id');
}
$clientSecret = $this->getRequestParameter('client_secret', $request, $basicAuthPassword);
if ($clientSecret !== null amp;amp; !is_string($clientSecret)) {
throw OAuthServerException::invalidRequest('client_secret');
}
return [$clientId, $clientSecret];
}