Laravel 10+SQLite环境下用户认证失败问题求助
Laravel 10登录失败问题排查与修复
你的问题核心是密码没有经过哈希存储,Laravel的auth()->attempt()方法会自动对用户输入的密码做哈希处理后再和数据库中的值对比,但你直接把明文密码存入了数据库,导致永远匹配失败。
修复步骤:
重新创建哈希后的用户数据
替换你原来的用户插入代码,使用Laravel的哈希工具类处理密码:// 记得先引入Hash类 use Illuminate\Support\Facades\Hash; DB::table('users')->insert([ 'email' => 'admin@example.com', 'name' => 'admin', 'role' => 'admin', 'password' => Hash::make('admin'), ]);更推荐使用User模型的
create方法,因为Authenticatable基类会自动帮你处理密码哈希:App\Models\User::create([ 'email' => 'admin@example.com', 'name' => 'admin', 'role' => 'admin', 'password' => 'admin', ]);清理现有错误数据
先删除数据库中已存在的明文密码用户,再执行上面的插入代码。可以通过Artisan Tinker操作:php artisan tinker在Tinker中执行:
DB::table('users')->where('email', 'admin@example.com')->delete();额外检查确认
- 你的User模型已经将
password加入$fillable,这部分没问题 - 确认登录表单的输入框
name属性为email和password,与控制器接收的字段一致 - 路由配置和控制器逻辑没有问题,无需调整
- 你的User模型已经将
内容的提问来源于stack exchange,提问作者Igor galaxy
相关产品推荐
相关产品推荐

