Django Rest Auth自定义重置密码确认网址

时间:2016-10-31 15:04:08

标签: django django-rest-auth reset-password

使用django-rest-framework,当您发布重置密码(rest-auth / password / reset /)时,会向用户发送电子邮件。此电子邮件包含确认网址。我想更改此URL,因为我在REST应用程序案例中,我希望此电子邮件指向我的前端而不是django后端。

通过确认电子邮件案例,我必须覆盖get_email_confirmation_url中的AccountAdapter方法。但是使用重置密码的情况下,我不知道怎么做(适配器中没有关于重置密码的方法)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我用templatetags做到了: https://docs.djangoproject.com/fr/1.10/howto/custom-template-tags/

我的templatetags文件(例如settings_vars.py):

from django import template
from django.conf import settings

register = template.Library()

@register.simple_tag
def get_settings_var(name):
    return getattr(settings, name)

settings.py中的变量:

FRONTEND_URL = 'http://localhost:4200/'
ACCOUNT_EMAIL_CONFIRMATION_URL = FRONTEND_URL + 'verify-email/{}'
ACCOUNT_PASSWORD_RESET_CONFIRM = FRONTEND_URL + 'password-reset/confirm/'

password_reset_email.html中的用法:

{% load settings_vars %}

{% trans "Please go to the following page and choose a new password:" %}
{% block reset_link %}
{% get_settings_var 'ACCOUNT_PASSWORD_RESET_CONFIRM' %}?uidb64={{ uid }}&token={{ token }}
{% endblock %}

如果有人知道更好的解决方案,请随时发表评论。

希望它可以帮助某人。