首页 文章

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

提问于
浏览
1

验证::尝试([ 'u_email'=> $凭据[ '电子邮件'], 'u_password'=> SHA1($凭据[ '密码']))

我'm use this code for authentication but i' m得到 Undefined index: password 错误可以帮助创建自定义身份验证控件而无需更改供应商库

提前谢谢你的帮助......

1 回答

  • 2

    你需要做三件事 .

    • 将纯文本密码传递给 Auth::attempt() ,因为Laravel会在根据存储在数据库中的哈希验证它之前对其进行哈希处理 .
    Auth::attempt(['u_email'=>$credentials['email'],'password' => $credentials['password']]);
    
    • 密码为 password ,而不是 u_passwordAuth::attempt() . 密钥不需要匹配密码列名称(为什么?参见第3点),但它必须等于 password - 例如,请参见第1点 .

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

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

相关问题