【发布时间】:2020-05-28 10:04:16
【问题描述】:
我正在尝试基于 laravel 中的第三方 api 进行身份验证。不存储或使用本地数据库中的数据。在这里,我将 api 响应数据保留为一个数组,仅用于可视化。它显示错误 Argument 1 传递给 Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, string given, called in vendor\laravel\framework\src\Illuminate\Auth\ AuthManager.php 。我该如何解决。我也对它进行了研发。在此先感谢
$user = [
'status' => '200',
'token' => 'aWsIpvOEZfv4sfSRUGS2dDeGw7',
'id' => '12454545412',
'user' => [
'name' => 'xyz',
'email' => 'xyz@gmail.com',
'phone' => '12344787',
],
];
$user = json_encode($user);
Auth::login($user);
return redirect( '/home' );
【问题讨论】:
-
为什么在不验证用户数据时需要进行身份验证?如果你正在验证用户,你应该为用户提供一个具有扩展 Authenticatable 类的雄辩模型。
-
感谢您的回复。实际上我没有提到**验证用户数据**部分。当它获得匹配数据时,那个时候 api 响应提到了 json 数据,我将这些数据保留为可视化数组。如何使用这些数据进行身份验证?
-
您是否将用户存储在数据库中?另外,如果你想验证这些数据,你应该创建一个扩展 Authenticatable 类的辅助类,并将这些属性分配给它。
-
不,我没有把它保存在用户数据库中,我不想要这个
-
能否请您将此解决方案作为答案。我没有得到你的解决方案