在 Laravel 中创建具有不同数据库字段的自定义身份验证控制器

create custom authenticate controller with different database filed in Laravel

Auth::attempt(['u_email'=>$credentials['email'],'u_password'=>sha1($credentials['password'])])

我正在使用此代码进行身份验证,但出现 Undefined index: password 错误任何人都可以帮助创建自定义身份验证控件而不更改供应商库

在此先感谢您对我的帮助...

您需要做 3 件事。

  1. 将纯文本密码传递给 Auth::attempt(),因为 Laravel 会在根据存储在数据库。

    Auth::attempt(['u_email'=>$credentials['email'],'password' => $credentials['password']]);
    
  2. 将密码作为 password,而不是 u_password 传递给 Auth::尝试()。密钥不需要匹配密码列名称(为什么?请参见第 3 点),但它必须等于 password - 例如参见第 1 点。

  3. 在您的用户模型中实施 getAuthPassword() 方法,这将 return 值 u_password栏目。用户提供者使用此方法来获取密码哈希,该哈希稍后会根据传递给 Auth::attempt()

    的内容进行验证
    //in your User.php
    public function getAuthPassword() {
      return $this->u_password;
    }