Django重置密码失败,使用PasswordResetView

时间:2019-12-24 14:31:52

标签: django passwords

我目前正在为我开发的网站添加一种重置用户密码的方法。为此,我使用了Django的内置视图。您可以在下面找到所有文件的相关部分:

urls.py

urlpatterns = [
    path('recuperation-mot-de-passe', auth_views.PasswordResetView.as_view(email_template_name='inscription/reset_mail.html', subject_template_name='inscription/subject_mail.txt', success_url='recuperation-envoyee'), name = 'password-reset'),
    path('recuperation-envoyee', auth_views.PasswordResetDoneView.as_view(), name = 'password-reset-done'),
    path('recuperation-confirmee/<uidb64><token>', auth_views.PasswordResetConfirmView.as_view(success_url='recuperation-complete'), name = 'recuperation-confirmee'),
    path('recuperation-complete', auth_views.PasswordResetCompleteView.as_view(), name = 'password-reset-complete'),
]

reset_mail.html

{% load i18n %}{% autoescape off %}
{% blocktrans %}Vous recevez cet email car vous avez demandé à réinitialiser le mot de passe associé à votre compte Cook4Me.{% endblocktrans %}

{% trans "Cliquer sur ce lien pour choisir un nouveau mot de passe :" %}
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'recuperation-confirmee' uidb64=uid token=token %}
{% endblock %}
{% trans "Votre identifiant, au cas où vous l'auriez oublié :" %} {{ user.get_username }}

{% trans "Merci d'utiliser Cook4Me !" %}

{% blocktrans %}L'équipe Cook4Me{% endblocktrans %}

{% endautoescape %}

当我测试所有这些时,会发生以下问题:首先,输入我的电子邮件地址。邮件已正确发送,但我收到了两次相同的邮件,这是我认为的第一个问题。最大的问题是,当我单击重置链接时,出现以下错误消息的页面:"Password reset unsuccessful. The password reset link was invalid, possibly because it has already been used. Please request a new password reset." 我不明白为什么会有这个错误,因为我使用了Django的所有内置视图。我猜问题出在邮件上,因为我收到了两次(这是不正常的),并且该错误表明该链接已被使用。 我尝试使用django的内置邮件模板,但遇到了同样的问题。

有人可以帮我吗?

谢谢!

EDIT:双重电子邮件问题来自以下事实:我在数据库中添加了两个具有相同电子邮件地址的用户。现在,此问题已解决,但通过重置链接我仍然遇到与以前相同的错误。

EDIT2:我想我可能已经找到了问题。它来自网址recuperation-confirmee/<uidb64><token>中的参数,我想我必须用另一种方式编写它,但是我找不到它,有人可以帮我吗?

0 个答案:

没有答案