使用Laravel中的不同数据库创建自定义身份验证控制器


create custom authenticate controller with different database filed in Laravel

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

我使用此代码进行身份验证,但我得到了Undefined index: password错误。任何一个错误都可以帮助创建自定义身份验证控件,而无需更改供应商库

提前感谢您的帮助…

您需要做3件事。

  1. 将纯文本密码传递给Auth::attempt((,因为Laravel将在根据数据库中存储的哈希进行验证之前对其本身进行哈希。

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

  3. 在用户模型中实现getAuthPassword((方法,该方法将返回u_password列的值。用户提供程序使用此方法来获取密码哈希,该哈希稍后将根据传递给Auth::attempt((的内容进行验证

    //in your User.php
    public function getAuthPassword() {
      return $this->u_password;
    }