Django Rest Auth 自定义重置密码确认 url
Django Rest Auth custom reset password confirm url
使用 django-rest-framework,当您 post 重设密码 (rest-auth/password/reset/) 时,会有一封电子邮件发送到用户邮箱。此电子邮件包含确认 URL。我想更改这个 url 因为我在 REST 应用程序案例中,我希望这封电子邮件指向我的前端而不是 django 后端。
对于确认电子邮件案例,我不得不重写 AccountAdapter
中的 get_email_confirmation_url
方法。但是对于重置密码的情况,我不知道该怎么做(适配器中没有关于重置密码的方法)。
有什么想法吗?
我是用模板标签做的:
https://docs.djangoproject.com/fr/1.10/howto/custom-template-tags/
我的模板标签文件(例如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 %}
如果有人知道更好的解决方案,请随时发表评论。
希望对大家有所帮助。
使用 django-rest-framework,当您 post 重设密码 (rest-auth/password/reset/) 时,会有一封电子邮件发送到用户邮箱。此电子邮件包含确认 URL。我想更改这个 url 因为我在 REST 应用程序案例中,我希望这封电子邮件指向我的前端而不是 django 后端。
对于确认电子邮件案例,我不得不重写 AccountAdapter
中的 get_email_confirmation_url
方法。但是对于重置密码的情况,我不知道该怎么做(适配器中没有关于重置密码的方法)。
有什么想法吗?
我是用模板标签做的: https://docs.djangoproject.com/fr/1.10/howto/custom-template-tags/
我的模板标签文件(例如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 %}
如果有人知道更好的解决方案,请随时发表评论。
希望对大家有所帮助。