Проверка подлинности с переопределением Laravel - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь переопределить пользовательскую аутентификацию Laravel, проверяя, подтвердил ли пользователь свой адрес электронной почты.В то же время я хотел бы регистрировать попытки аутентификации.Последнее я пытаюсь добиться с двумя слушателями, которые я зарегистрировал в EventServiceProvider.php

'Illuminate\Auth\Events\Login' => [
    'App\Listeners\LogSuccessfulLogin',
],
'Illuminate\Auth\Events\Failed' => [
    'App\Listeners\LogFailedAuthenticationAttempt',
],

В приложении / Http / Controllers / Auth / LoginController.php у меня есть следующее.

/**
 * Validate the user login request.
 * Override vendor method.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return void
 */
protected function validateLogin(Request $request)
{
    $rules =  [
        'email' => [
            'required',
            'string',
            'exists:users,email,confirmed,1',
        ],
        'password' => [
            'required',
            'string',
        ],
    ];

    $messages = [
        'email.exists' => 'The combination of email address and password is unknown or the email address has not yet been validated.',
    ];

    $validator = Validator::make($request->all(), $rules, $messages);

    // $this->validate($request, $rules, $messages);

    if ($validator->fails()) {
        return redirect('nl')
                    ->withErrors($validator)
                    ->withInput();
    }
}

Проблема в том, что таким образом, кажется, игнорируется проверка того, подтвердил ли пользователь свой адрес электронной почты.И авторизация: используется промежуточное ПО.Теперь измените это:

//$validator = Validator::make($request->all(), $rules, $messages);

$this->validate($request, $rules, $messages);

Теперь проверяется, подтвержден ли адрес, но событие Failed никогда не вызывается.Как я могу добиться как вызова события, так и пользовательских правил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...