Django 从 1.10.x 升级到 2.2.x。现在密码不起作用

Django upgraded from 1.10.x to 2.2.x. Now passwords are not working

这是一个已知问题吗? 有没有办法在不更改密码或要求用户重设密码的情况下规避这种情况? 我正在使用 Django-admin 默认应用程序。请务必询问您还需要哪些其他信息来帮助我进行调试。

仅供参考,我也从 python 2.7.x 升级到 python 3.6.x 同样。

这可能是因为他们 removed the BCryptPasswordHasher from the default PASSWORD_HASHERS when they released 。您可以通过查看数据库来检查这一点,并查看是否有以 bcrypt$$.

开头的密码

您可以手动将此添加到 PASSWORD_HASHERS setting [Django-doc],方法是添加:

# settings.py

# …

PASSWORD_HASHERS = [
    # …,
    <b>'django.contrib.auth.hashers.BCryptPasswordHasher'</b>
]

# …