1

我在 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() 会更改密码哈希,我该如何解决这个问题?

4

1 回答 1

0

好的,我找到了一些开发人员通过 pre_save 信号调用的代码。我修复了此代码中的一个错误,现在问题已解决。

于 2013-02-22T12:49:24.563 回答