Laravel 5.7, API с паспортом драйвера, не может добавить проверку при входе - PullRequest
1 голос
/ 04 октября 2019

У меня есть 2 приложения, использующие одну и ту же базу данных.

Одно из них в PHP 5.6 и Laravel 5.3, это целое приложение Laravel с представлениями, js, все в Laravel.

Другоев PHP 7.1 и Laravel 5.7 (он используется в качестве API для приложения ReactJS)

В старом моем LoginController я переписал этот метод AuthenticatesUsers:

protected function validateLogin(Request $request)
{
    $this->validate(
        $request, 
        [
            'email' => 'required|exists:users,email,active,1|exists:users,email,access_oldmaster,1',
            'password' => 'required'
        ], 
        [
            'email.exists' => 'El nombre de usuario es incorrecto o la cuenta se encuentra deshabilitada.'
        ]
    );
}

Эта версия содержит в config/auth.php файле:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],

Проверка работает нормально. Я пытаюсь реализовать ту же самую проверку на более новой версии:

'email' => 'required|exists:users,email,active,1|exists:users,email,access_oldmaster,1',

Но более новая версия имеет в конфигурации driver (помните, что эта версия является API):

'api' => [
    'driver' => 'passport',

Итак, я попытался сделать то же самое, что и в старой версии, чтобы переписать LoginController тем же методом validateLogin, но API его не использует.

Как я могу использоватьчто валидация в моем API?

1 Ответ

0 голосов
/ 08 октября 2019

Как я читаю здесь:

Пользовательская проверка Laravel Passport для любого запроса / oauth / token

Я поместил этот метод в мою User модель:

public function validateForPassportPasswordGrant($password)
{
    // $this->what_ever_user_propertie
    if ($this->active != true) {
        throw OAuthServerException::accessDenied('The account is not active');
    }

    return \Hash::check($password, $this->password);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...