在我的密码重置页面上,我使用Security :: hash()保存用户的新密码。然后,当我尝试登录时,我的数据库保存的哈希密码与在登录字段中哈希输入时Auth出现的版本不匹配。
我认为这类似于Security :: hash(),使用我的应用程序盐来散列密码,而Auth不使用那个盐?
你是怎么做到的?
答案 0 :(得分:5)
您是否尝试过AuthComponent::password()
方法?
此外,如果该字段名为password
,请检查AuthComponent是否尚未对其进行哈希处理。
修改:在3.x中,请参阅DefaultPasswordHasher::hash()
,如Hashing Passwords中所述。
答案 1 :(得分:1)
应为Security::hash($password, 'sha1', true)
您可以将第二个参数保留为NULL,因为Auth使用与Security中指定的相同的哈希。