Laravel \ Passport \ Client возвращает нулевой экземпляр - PullRequest
1 голос
/ 26 мая 2020

Мой 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);
    }
...