You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue JS/Laravel 身份验证失效问题排查求助

Laravel身份验证失败问题修复

核心问题分析与解决步骤

1. 密码未哈希存储

Laravel的auth()->attempt()方法会自动对传入的密码进行哈希校验,但你的数据库中password字段存储的是明文admin123,导致校验不匹配。

解决方法:

  • 生成哈希密码替换数据库中的明文密码:
    运行Artisan Tinker生成哈希值:
    php artisan tinker
    echo Hash::make('admin123');
    
    将输出的哈希字符串替换数据库accounts表中admin用户的password字段值。
  • 后续注册用户时,必须使用Hash::make()对密码哈希后再存入数据库。

2. 主键字段未显式指定

Laravel默认模型主键为id,但你的表主键是user_id,这会导致认证过程中模型查询异常。

解决方法:
在User模型中添加主键指定:

protected $primaryKey = 'user_id';

3. 认证用户名字段配置错误

Laravel默认使用email作为认证的用户名标识字段,而你使用的是username,需要修改配置或模型方法。

解决方法二选一:

  • 方法一:修改User模型
    添加自定义认证字段方法:
    public function getAuthIdentifierName()
    {
        return 'username';
    }
    
  • 方法二:修改配置文件
    编辑config/auth.php,在providers的users配置中指定用户名字段:
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
            'username' => 'username',
        ],
    ],
    

4. 额外验证点

  • 检查请求参数是否正确传递:在控制器中临时添加打印语句,确认username和password参数是否被正确接收:
    public function sign_in(Request $request) {
        dd($request->only('username', 'password')); // 验证参数
        // ... 原有逻辑
    }
    
  • 确认User模型的$fillable属性已包含username和password字段(当前配置已满足)。

内容的提问来源于stack exchange,提问作者PentaD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:33:26