gpt4 book ai didi

angularjs - Django RestAuth 自定义密码重置链接

转载 作者:行者123 更新时间:2023-12-05 00:14:24 24 4
gpt4 key购买 nike

我已经尝试了为类似问题找到的解决方案,但没有一个对我有用。

我正在使用 Angular 前端 + DRF + Django Rest Auth,对于确认 url,我能够通过添加一个看起来像这样的自定义适配器来覆盖它以指向我的前端,

class AccountAdapter(DefaultAccountAdapter):

def send_mail(self, template_prefix, email, context):
context['activate_url'] = settings.URL_FRONT + \
'access/verify-email/' + context['key']
msg = self.render_mail(template_prefix, email, context)
msg.send()

URL_FRONT = 'http://localhost:8080/app/#/'作为将用户定向到客户端的设置。

我的问题是对密码重置 url 执行相同的操作。我希望它以 URL_FRONT 开头设置和附加 token 就像我确认的那样。
解决这个问题的最佳方法是什么?

最佳答案

看起来 django-rest-auth 使用 django.contrib.auth.forms.PasswordResetForm处理这个:
https://github.com/Tivix/django-rest-auth/blob/master/rest_auth/serializers.py#L183

并根据 Django doc您可以传递您自己的电子邮件模板(注意:Django 1.11 中发生了重大变化,因此请确保使用您的 Django 版本的文档)。默认模板为 registration/password_reset_form.html .您可以使用自己的 PasswordResetSerializer 覆盖它(扩展 rest_auth.serializers.PasswordResetSerializer )在 django-rest-auth configuration .

在那里你可以覆盖 get_email_options()方法并设置您自己的模板

def get_email_options(self):
return {
'email_template_name': 'path/to/your/txt_template.html',
'html_email_template_name': 'path/to/your/html_template.html',
}

或者,将您的 URL 传递为 success_url 就足够了.

关于angularjs - Django RestAuth 自定义密码重置链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com