Laravel 默认登录身份验证生成意外错误

Posted

技术标签:

【中文标题】Laravel 默认登录身份验证生成意外错误【英文标题】:Laravel default auth for login generating unexpected error 【发布时间】:2020-11-17 11:58:00 【问题描述】:

我正在使用 laravel (6.2) 的默认身份验证进行用户身份验证。在我的登录表单中,当我点击 laravel 提供的默认登录路由('login')时,它向我显示 wrong credential provided 错误,尽管我的凭据是正确的。我使用播种机生成我的第一个用户(该站点的默认用户)并使用全局bcrypt()(也尝试过Hash::make())方法来散列我的密码。我正在使用默认的 'file' 会话驱动程序。

最有趣的部分是,当我触发php artisan migrate:fresh --seed 命令或php artisan migrate 后跟php artisan db:seed 命令时,身份验证第一次正常工作,这意味着当我在触发这些命令后立即尝试登录时身份验证工作正常,直到注销。但在那之后,当我手动注销或会话无效时,即使我的凭据正确,我也无法登录。有什么解决办法吗?

这里的播种机参考我申请的默认用户

\App\User::create([
    'name'     => "John Doe",
    'email'    => 'john@example.com',
    'password' => Hash::make('password')
]);

【问题讨论】:

尝试上传你的代码,比如你正在创建的工厂等 如果用户表发生任何更改,请在注销后检查您的数据库 @AkhtarMunir 我使用的所有东西都带有默认身份验证,没有修改任何用于登录的控制器或特征,这就是为什么没有上传代码。 @MuhammadRizwan 数据库中没有更改,因为我正在维护“文件”会话驱动程序,因此数据库没有更改。甚至不在用户表中 【参考方案1】:

您是否在登录功能中检查为Hash::check(normal_password,hashed_password);

【讨论】:

正如我之前提到的,我让 laravel 使用它的默认身份验证来处理登录。所以是的,在幕后 laravel 正在检查纯密码和散列密码 请不要使用其他问题的答案。您可以使用 cmets 获取更多信息。

以上是关于Laravel 默认登录身份验证生成意外错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 默认使用 Vuejs 进行身份验证,仅在登录后提供 spa

Laravel 5.2 需要一个实现默认身份验证驱动程序/“Multi-Auth”的示例。现在需要很多工作,因为[重复]

Laravel 4 身份验证注销错误

Laravel 未经身份验证无触发

在 Laravel 5.8 中以用户身份管理员登录

Laravel 5.5 无法使用身份验证脚手架登录