2013-08-20 116 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()是表的「用戶名」。

相關問題