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

5
使用django-rest-framework时,当您提交重置密码(rest-auth/password/reset/)时,会向用户的电子邮件发送一封电子邮件。该电子邮件包含确认URL。我想更改此URL,因为我在REST应用程序情况下,希望此电子邮件指向我的前端而不是django后端。
在确认电子邮件的情况下,我必须覆盖AccountAdapter的get_email_confirmation_url方法。但是在重置密码的情况下,我不知道该怎么做(适配器中没有关于重置密码的方法)。
有什么想法吗?
2个回答

4
我用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 %}

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

希望能帮助到某些人。


请点击此处查看可用的答案:https://dev59.com/q6bja4cB1Zd3GeqPdkE2 - Bernard 'Beta Berlin' Parah

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接