2013-05-30 63 views
0

我試圖建立一個自定義的驗證方法的線沿線的:Symfony2的自定義身份驗證方法

用戶表:ID,用戶名,電子郵件,HASH2,salt1 密碼錶:HASH1,salt2

然後認證的方法是:

  • 檢索salt1和HASH2從用戶表
  • 從密碼錶中檢索salt2(選擇salt2其中HASH1 =散列(salt1 +密碼) )
  • 驗證與salt2散列密碼匹配HASH2

但是,我想不出如何實現這樣的多步驟驗證方法。我發現的所有例子只顯示了基本方法的工作方式。

回答

0

您是否真的需要創建自己的身份驗證方法?目前你正在嘗試自己做密碼學,這很糟糕,因爲密碼學很難。

您可以使用默認的認證機制與您自己的用戶提供商嗎?見文檔http://symfony.com/doc/current/cookbook/security/custom_provider.html

+0

也許我不明白Symfony2是如何工作的。有沒有辦法使用默認身份驗證來完成上述操作?我想要做到這一點的原因是,如果有人要把他們的手放在數據庫上,那麼破解密碼很困難。唯一的問題是,我看不到我可以如何使用getPassword和getSalt方法,因爲這是一個多步驟的方法。 – Erekel

+0

不要擔心默認的Symfony2身份驗證機制是安全的,並且密碼正確散列。 – julesbou

+0

我決定去實現這一點,因爲實施我自己並不符合成本效益。 – Erekel