1

Django1.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

OK、開発者がpre_saveシグナルを介して呼び出しているコードを見つけました。このコードのバグを修正し、問題が解決しました。

于 2013-02-22T12:49:24.563 に答える