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

时间:2015-07-23 10:38:48

标签: php laravel laravel-5 laravel-5.1

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

我使用此代码进行身份验证,但我可以获得Undefined index: password错误,无需更改供应商库即可创建自定义身份验证控件

先谢谢你帮我...

1 个答案:

答案 0 :(得分:2)

您需要做三件事。

  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;
    }