Пользовательская аутентификация Laravel 5.4 без базы данных

У меня нет базы данных в приложении Laravel. Я использую сервис Soap для извлечения данных в этом приложении. Я следовал инструкциям решения этой ссылки из stackru, чтобы заменить существующую аутентификацию laravel на пользовательскую аутентификацию. Но когда я достиг метода retrieveByCredentials()Я не смог вернуть объект класса stdlib для подробностей пользователя. Вместо этого он вернул следующую ошибку.

(1/1) FatalThrowableError Ошибка типа: Аргумент 1, передаваемый в App\Auth\SoapUserProvider::validateCredentials(), должен быть экземпляром Illuminate \ Contracts \ Auth \ Authenticatable, заданным экземпляром stdClass, вызываемым в C:\xampp\7.1.7\htdocs\gazebo_revamp\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php в строке 380

Пожалуйста, пролите немного света на это.

1 ответ

Если вы используете пользовательский поставщик проверки подлинности пользователя, то в методе retrieveByCredentials() создайте экземпляр нового класса User и верните его. Вот так:

if ($api_auth === true )
        return new \App\User(['id' => 0]);
Другие вопросы по тегам