2016-11-17 66 views
2

我面临的问题,身份验证:尝试方法总是返回我错误的价值。laravel 5.2身份验证:试图总是返回假

我的数据库的项目有:

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

注:我保存的密码呼应哈希的输出后手动::使( '管理')。

认证的代码是:

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

我不知道这是怎么回事这里错了吗?

回答

0

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

如果是的话,你可以去配置/ auth.php和变化:

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

例如

+0

是,某些方法我验证的设置有: '“默认” = > [ '后卫'=> '网页', '密码'=> '用户', ], '卫士'=> [ '卷筒纸'=> [ '司机'=> '会话', 'provider'=>'users', ], 'api'=> [''driver'=>'token','''提供商'=> '用户', ], ], '提供商'=> [ '用户'=> [ '司机'=> '口才', '模式'=>应用\机构: :class, ], ],' – user7174455

0

感谢您的答复。

我发现,自从我使用“机构”表(而不是用户),该模型原子能机构需要实现诸如

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