laravel 5.2 Auth:try总是返回false

时间:2016-11-17 18:06:19

标签: php laravel authentication

我遇到的问题是auth:attempt方法总是返回false值。

我的Db条目是:

  • 用户名:admin
  • 密码: $ 2Y $ 10 $ jXkNy3WC2wqu0jmaqOfDiOgDnBV89uyvJPcNSU8xOnmO3w9RjT53S

注意:我在回显Hash :: make('admin')的输出后手动存储了密码。

身份验证代码为:

// create our user data for the authentication
$userdata = array(
    'username'     => Input::get('username'),
    'password'  => Input::get('password'),
    'agencyactive'  => 1
);

if (Auth::attempt($userdata)) 
{
    echo 'SUCCESS!';exit;
} 
else 
{
    echo "<br>Login error";exit;
}

它始终打印“登录错误”。

为了排除故障,我记录了SQL查询,它检索了正确的记录,

select * from `agencies` where `username` = 'admin' and `agencyactive` = 1 limit 1

令人惊讶的是,当我验证下面的比较时,它会打印MATCHES

if (\Hash::check('admin', '$2y$10$jXkNy3WC2wqu0jmaqOfDiOgDnBV89uyvJPcNSU8xOnmO3w9RjT53S'))
{
    // The passwords match...
    echo "MATCHES";
}
else
{
    echo "NO Match";
}

我不知道这里出了什么问题???

2 个答案:

答案 0 :(得分:0)

你有另一个模型而不是默认用户。

如果是这样,您可以转到config / auth.php并更改:

'model' => 'MyApp\Models\Agency',

例如

答案 1 :(得分:0)

感谢您的回复。

我发现,由于我使用的是“代理商”表(而不是用户),因此代理商需要实施某些方法,例如

public function getAuthPassword()
{
    return $this->password;
}