2013-08-20 72 views
0

我正在为现有数据库制作一个API。当我看到Auth :: attempt始终返回false时,我首先注意到了这个问题。由于我已经实现了自己的SHA1哈希提供程序,我认为这可能是问题所在。为什么Laravel Auth :: check总是返回false?

但我试过Hash :: make('test'),它给了我'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'。然后我尝试了Hash :: make($ client-> pwd),它给了我相同的散列。正确到目前为止。最后我做了

if (Hash::check('test', $cli->pwd)) 
{ 
    [...] 
} 

它返回false。从它的外观来看,问题不在于我的哈希提供程序,我想这也是Auth :: attempt失败的原因。谁能告诉我为什么?

+4

Auth :: attempt()会散列密码本身,所以它可能会重新散列您的“散列”密码 – Laurence

+0

您是否将自定义哈希提供程序集成到Auth中?因为这个散列看起来不像BCrypt散列。 –

+0

糟糕,我的错误。我将它改为if(Hash :: check('test',$ cli-> pwd))。仍然返回假。是的,我认为我获得了集成权,这是SHA1,因为我的数据库密码不是bcrypt哈希值。 –

回答

0

问题出在我身上。我误解了雄辩的概念。我不得不改变我的UserInterface类,我的用户模型映射到的一个,getAuthIdentifier()返回“id”,这是我的表的PrimaryKey。我虽然getAuthIdentifier()是表的“用户名”。

相关问题