Как я могу вернуть ошибки аутентификации из пользовательского Laravel UserProvider? - PullRequest
0 голосов
/ 07 марта 2020

Я создал свой собственный UserProvider, который аутентифицируется по другой базе данных. Все работает отлично; Я могу войти / выйти и т.д. c. Я возвращаюсь к сообщениям об ошибках и сталкиваюсь с загадкой.

Вот как выглядит пример моего кода:

MyUserProvider. php

...
$auth = json_decode($response, true);  // response from Guzzle to 3rd party auth

if ($auth) {
    if ($auth['errors']) {
            return redirect('login')
                ->withErrors(['auth' => 'Invalid username or password']);
        } else {
            $myUser = $auth['data']['user']; // auth object from 3rd party.
            $user = User::where('id', $myUser['id'])->first();  // find user in local db.
            ...
        }
    }
}

Часть, с которой я борюсь, это как обработать перенаправление. Я получаю ошибку:

validateCredentials () должен быть экземпляром Illuminate \ Contracts \ Auth \ Authenticatable, экземпляром Illuminate \ Http \ RedirectResponse, данным

, который Имею смысл, я возвращаю редирект, а не аутентифицируемый объект (пользователь). Но у меня нет пользователя - мое имя пользователя или пароль были неверными.

Как я могу перенаправить пользователя назад и отобразить сообщение fla sh, сообщающее ему, что произошло?

Спасибо за любые предложения!

...