Laravel 5.3未定义Auth::login和Auth::loginUsingId
我创建了一个名为ADMIN_USER的新表,其中包含用于身份验证的用户名和密码字段,但当我尝试执行登录时,Hash::check按预期返回true,而Auth::trunt返回false 然后,我试图记住Hash::check或Auth::trunt之前登录的用户,php回复时出现错误:调用未定义的函数App\Http\Controllers\Auth\loginUsingId() Hash::check下的Auth:login不记得任何东西 以下是我在LoginController中的身份验证方法:Laravel 5.3未定义Auth::login和Auth::loginUsingId,laravel,Laravel,我创建了一个名为ADMIN_USER的新表,其中包含用于身份验证的用户名和密码字段,但当我尝试执行登录时,Hash::check按预期返回true,而Auth::trunt返回false 然后,我试图记住Hash::check或Auth::trunt之前登录的用户,php回复时出现错误:调用未定义的函数App\Http\Controllers\Auth\loginUsingId() Hash::check下的Auth:login不记得任何东西 以下是我在LoginController中的身份验证
public function authenticate(Request $request)
{
$data = $request->all();
$user = new User();
$user = $user->where('USERNAME' , $data['inputUsername'])->first();
Log::info($user->PASSWORD);
Log::info($data['inputPassword']);
Auth:loginUsingId($user->id);
/*
if(Auth::attempt(array('USERNAME' => $data['inputUsername'], 'PASSWORD' => $data['inputPassword']))){
return redirect($this->home);
}else{
return redirect($this->index);
}
*/
if(Hash::check($data['inputPassword'], $user->PASSWORD)){
Auth::loginUsingId($user->id);
return redirect($this->home);
}else{
return redirect($this->index);
}
}
Laravel预先配置了一个用户和身份验证表,用于存储会话信息、用户、加密密码等,因此无需创建自己的表。有关这方面的更多信息,请参阅 Laravel配置将不知道如何与管理员用户通信,除非您修改您的authenticate类 查看应用程序的database/migrations文件夹,您会发现一个timestamp_create_users_table.php文件,其中包含一个迁移,用于创建一个带有id、名称、电子邮件、密码、令牌和时间戳的用户表 如果没有看到,请运行:
php artisan make:auth
一旦你在你的migrations文件夹中有了这个迁移文件,就可以运行了
php artisan migrate
一旦运行,检查您的数据库,您应该会看到一个users表。我很确定这会解决你的身份验证问题
我建议你浏览一些关于laracasts的免费课程。它应该能帮助你很快地跟上进度
希望这有帮助。我通过将数据库中的密码更改为密码,将ID更改为ID解决了问题。您已经迁移了Laravel附带的迁移吗?您的数据库当前有哪些表?系统是新创建的,我手动创建了ADMIN_USER表,并在USER类中添加了$table属性,其中$fillable数组更改为相应的列名是否需要更改迁移并执行一些php命令?我相信下面的答案应该会对您有所帮助。我通过执行迁移和更改PASSWORD列改为PASSWORD,现在Auth::trunt按预期返回true,但我无法使用Auth::user()检索用户数据。是否添加了use Auth;您试图通过哪个控制器访问数据?您是否以访客身份登录或访问该页面?运行dd(Auth::check());检查。