2013-02-22 75 views
1

我遇到在Django 1.4.5一個奇怪的身份驗證問題成功地對指定的原始密碼:Django的認證問題user.save()更改密碼哈希

In [17]: user.check_password('test') 
Out[17]: False 

In [18]: user.set_password('test') 

In [19]: user.check_password('test') 
Out[19]: True 

In [20]: user.save() 

In [21]: user.check_password('test') 
Out[21]: False 

的密碼散列與pbkdf2_sha256散列器:

In [22]: user.password 
Out[22]: 'pbkdf2_sha256$10000$Aj5RbYndelmz$j35cic6UBh/HWnD//7TMfGWEtt7j4+T6970lOezpc1U=' 

因此,即使創建一個超級用戶後:

python manage.py createsuperuser 

我無法使用指定的憑證登錄。

爲什麼user.save()更改密碼散列,我該如何解決這個問題?

+2

它不應該發生,我不能用新創建的1.4.5項目來重現它。您是否以某種方式修改了用戶模型或contrib.auth的其他部分? – 2013-02-22 12:26:21

+0

好的,我找到了一些開發人員通過pre_save信號調用的代碼。我修正了這段代碼中的一個錯誤,現在問題解決了。 – Ries 2013-02-22 12:48:54

回答

0

好的,我找到了一些開發人員通過pre_save信號調用的代碼。我修正了這段代碼中的一個錯誤,現在問題解決了。