【问题标题】:django authentication with hashed password or convert it to plain使用散列密码进行 django 身份验证或将其转换为普通密码
【发布时间】:2015-07-10 10:08:22
【问题描述】:

假设我有用户的电子邮件

user = User.objects.get(email="anyone@anymail.com")

现在我想像这样登录这个用户:

user = authenticate(username=username, password=user.password)

验证不使用散列密码。但在这里我只能得到散列密码。我如何登录此用户让我们说更改其密码

谢谢

【问题讨论】:

  • 您是在登录时遇到问题还是只是密码卡住了??
  • 为什么在修改密码之前需要先登录用户?
  • stackoverflow.com/questions/2787650/… Daniel 给出了很好的回答
  • 无法登录
  • 我不完全确定答案是否仍然有效。但我上面的观点仍然存在:你为什么需要让用户登录呢?

标签: python django authentication


【解决方案1】:

您无需登录用户即可更改密码。您可以使用 Django 的 set_password() 帮助函数来更改密码。

from django.contrib.auth.models import User

user = User.objects.get(email="anyone@anymail.com")
user.set_password('new_password')
user.save() # call save explicitly

根据文档,

设置密码(原始密码)
将用户的密码设置为给定的原始密码 字符串,负责密码散列。不保存用户 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2014-04-29
    • 2017-07-24
    • 2020-02-28
    • 2016-07-15
    • 2015-12-28
    相关资源
    最近更新 更多