Пользовательская аутентификация 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]);