我在 Django 1.4.5 中遇到了一个奇怪的身份验证问题:
一旦我调用 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() 会更改密码哈希,我该如何解决这个问题?