我真的有一个奇怪的问题。每次用户登录时(或在调用函数authenticate()
后),他们的密码都会随机更改。
这就是我调用authenticate()函数的方法
user = authenticate(username = data['email'], password = data['password'])
raise ValueError("Break")
user = authenticate(用户名,密码)//返回成功但更改实例的密码。
另一个信息:问题只发生在我的本地但不是在生产中(试图在另一台PC上进行)。
在该行之后,当我在我的数据库中检查密码时,密码会改变(pgAdmin3中的postgresql)。
这是登录功能
user = authenticate(username = data['email'], password = data['password'])
if user:
if not user.is_active:
raise ValueError("Inactive user.")
else:
login(request,user)
redirect('home')
else:
raise ValueError("Invalid username/password.")
答案 0 :(得分:1)
你没有提到你使用的是哪个版本的Django,但是在最近的一个补丁中引入了一个新功能,用于在密码被弱哈希函数散列的情况下加密密码。除此之外,Django 1.9还引入了一些密码强度验证的新功能。 我建议您仔细阅读以下部分,看起来它可能与您的问题有关: https://docs.djangoproject.com/en/1.9/topics/auth/passwords/#password-upgrading
您可以做的另一件事是在set_password()
管理器中修改save()
(以及可能User
)方法,并在调用此函数时引发异常 - 这将为您提供回溯,它可以给你一个提示,为什么/在哪里调用。