Мой Auth API работал, но теперь выдает ошибку. Я могу успешно зарегистрироваться, но не могу получить возврат токена входа, потому что получаю сообщение об ошибке:
TypeError: Argument 1 passed to App\Http\Controllers\UserController::getTokenAndRefreshToken() must be an instance of Laravel\Passport\Client, null given, called in /var/www/laravel/app/Http/Controllers/UserController.php on line 44 in file /var/www/laravel/app/Http/Controllers/UserController.php on line 47
Как я уже сказал, он работал раньше, я просто добавил другую модель и создал отношения «один ко многим» с моделью пользователя, но я не думаю, что это имеет какое-либо отношение к Passport. Почему я получаю нулевой объект от OClient :: where ('password_client', 1) -> first ();
Я создаю такого пользователя в методе регистрации UserController.
$user = User::create($input);
$oClient = OClient::where('password_client', 1)->first();
return $this->getTokenAndRefreshToken($oClient, $user->email, $password);
public function getTokenAndRefreshToken(OClient $oClient, $email, $password) {
$oClient = OClient::where('password_client', 1)->first();
$http = new Client;
$response = $http->request('POST', '/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => $oClient->id,
'client_secret' => $oClient->secret,
'username' => $email,
'password' => $password,
'scope' => '*',
],
]);
$result = json_decode((string) $response->getBody(), true);
return response()->json($result, $this->successStatus);
}