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()更改密碼散列,我該如何解決這個問題?
它不應該發生,我不能用新創建的1.4.5項目來重現它。您是否以某種方式修改了用戶模型或contrib.auth的其他部分? – 2013-02-22 12:26:21
好的,我找到了一些開發人員通過pre_save信號調用的代碼。我修正了這段代碼中的一個錯誤,現在問題解決了。 – Ries 2013-02-22 12:48:54