有没有一种方法可以使用Django的默认密码重置,而不需要通过电子邮件发送重置链接?

n3ipq98p  于 2023-08-08  发布在  Go
关注(0)|答案(3)|浏览(115)

有没有一种方法可以使用django内置的密码重置功能,而不需要通过电子邮件发送重置链接或没有电子邮件选项。我目前正在开发一个简单的系统,有几个用户,不需要发送电子邮件。提前感谢

jyztefdp

jyztefdp1#

django.contrib.auth中有一些选项允许您在无需发送电子邮件的情况下更改密码:

  • 密码更改表单:允许用户通过输入旧密码来更改密码的表单。
  • SetPasswordForm:允许用户更改设置密码而不输入旧密码的表单

您可以在视图中实现其中一个来更改用户密码。

2nbm6dog

2nbm6dog2#

您可以使用表单更改密码,并在views.py中使用该功能
make_password()

if passwordForm.is_valid():
    password = passwordForm.cleaned_data['password']
    request.user.password = make_password(password)
    request.user.save()

字符串
[make_password][1] docs.djangoproject.com/en/1.11/topics/auth/passwords/

pieyvz9o

pieyvz9o3#

我不熟悉django,但我以前在其他应用程序上工作过,任何用户都可以通过密码重置获得访问权限,即使是初始管理员。在所有这些情况下,工作方法都是相似的--重置链接是由一些URL存根加上在某个数据库表中找到的唯一键形成的。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝执行任何操作,除非填充该列,因此如果您使用简单的方法没有成功,请检查任何类似的操作
如果你一定要有一个电子邮件服务器,确实存在一些简单的用于开发的服务器,比如smtpdev,它们的行为就像一个smtp服务器来欺骗一个需要它的应用程序,但是它们不发送电子邮件到任何地方,它们只是显示它们。用于调试,但如果django坚持要配置一个看起来像真实的的邮件服务器的话,可能会对您有所帮助

相关问题