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

Laravel自定义模型登录时Auth::attempt报“Undefined array key password”错误

Laravel自定义模型登录报错及Auth密钥配置解答

一、解决"Undefined array key 'password'"错误

1. 修正凭证数组的键名

Laravel的Auth::attempt()方法默认期望凭证数组中包含小写的password键,你当前传入的是首字母大写的Password,这会导致系统找不到对应的密码字段。修改控制器代码中的凭证部分:

function NewUser_homePost(Request $request) 
{
    // 修正键名为小写的password
    $credentials = $request->only('Username', 'password');

    if (Auth::attempt($credentials)) {
        return redirect(route('New_Home'))->with("success", "Logged in successfully");
    }

    return redirect(route('Home'))->with("error", "Login details are not valid");
}

2. 自定义模型的密码字段适配(可选)

如果你的数据库表中密码字段确实是大写的Password,需要在自定义模型中重写getAuthPassword()方法,指定密码字段名:

use Illuminate\Foundation\Auth\User as Authenticatable;

class YourCustomModel extends Authenticatable
{
    // 你的模型配置...

    /**
     * 获取用于认证的密码字段
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->Password;
    }
}

二、关于Auth系统的密钥配置

Laravel Auth系统依赖应用密钥(APP_KEY),该密钥存储在项目根目录的.env文件中,对应APP_KEY字段。它主要用于:

  • 加密用户会话数据
  • 生成密码重置令牌、记住我令牌等安全凭证
  • 加密敏感的Auth相关数据

如果你的项目没有生成APP_KEY,可以通过Artisan命令生成:

php artisan key:generate

Auth系统没有单独的"存储密钥"配置,所有加密相关的操作都依赖这个APP_KEY。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:57:07