我有在php核心开发的项目。现在我已经创建了几个api 我能够在laravel中获取所有数据,但现在我对登录验证有点问题。
public function postLogin(Request $request) {
// print_r($request->all());
$data['email']=$request->email;
$data['password']=$request->password;
$response= ApiModel::userLogin($data);
// Auth::login($response[0]);
// Auth::loginUsingId($response[0]->id);
echo "<pre>";
print_r($response[0]);
}
我正在尝试创建身份验证会话,但是它给出了错误。我尝试了以下方法,但似乎无法正常工作
Auth::login($response[0]);
Auth::loginUsingId($response[0]->id);
任何人都可以帮助我如何使用api保持用户会话
错误
SessionGuard.php第408行中的ErrorException:参数1传递给 Illuminate \ Auth \ SessionGuard :: login()必须是。的实例 Illuminate \ Contracts \ Auth \ Authenticatable,给出stdClass的实例, 呼唤 d:\ XAMPP \ htdocs中\ collab中\厂商\ laravel \框架\ SRC \照亮\验证\ AuthManager.php 在第294行并定义
答案 0 :(得分:0)
您可以使用Auth::attempt(['fieldname'=>'value','someother'=>'anothervalue']);
答案 1 :(得分:0)
您需要在config/auth.php
中定义正确的身份验证警示信息。 Auth::login()
方法要求您默认传递User
模型实例,此模型应实现Illuminate\Contracts\Auth\Authenticatable
。
您应该将默认保护提供程序设置为使用database
驱动程序而不是eloquent并设置正确的表名。然后,您可以使用Auth::loginUsingId()
使用其ID登录用户。
但是,如果您不想将数据库连接到Laravel,那么只需依赖API响应并根据该响应执行操作。您不能以这种方式强制进行经过身份验证的会话。