django-allauth:如何修改电子邮件确认 url?

Posted

技术标签:

【中文标题】django-allauth:如何修改电子邮件确认 url?【英文标题】:django-allauth: how to modify email confirmation url? 【发布时间】:2014-07-30 11:23:36 【问题描述】:

我在端口 8001 上运行 django,而 nginx 在端口 80 上处理网络服务器职责。nginx 代理视图和对 Django 的一些 REST api 调用。我正在使用 django-allauth 进行用户注册/身份验证。

当新用户注册时,django-allauth 会向用户发送一封电子邮件,其中包含可供点击的链接。因为 django 在 8001 端口上运行,所以链接看起来像 http://machine-hostname:8001/accounts/confirm-email/xxxxxxxxxxxxxx

如何使网址看起来像http://www.example.com/accounts/confirm-email/xxxxxxxx

谢谢!

【问题讨论】:

【参考方案1】:

Django 从 HTTP 标头中获取主机名和端口。 在选项proxy_pass 之前将proxy_set_header Host $http_host; 添加到您的nginx 配置中。

【讨论】:

谢谢;下次有机会我会试试这个。【参考方案2】:

我遇到了同样的问题,还发现 ferrangb 的解决方案对传出的 allauth 电子邮件没有影响。 mr_tron 的回答让我半途而废,但我不得不做更多的事情:

1) 在nginx配置中,放

proxy_set_header Host $http_host

在选项 proxy_pass 之前。

2) 在settings.py中,将域名添加到ALLOWED_HOSTS。我还添加了我的域名的 www 版本,因为这两个地址都获得了流量。

ALLOWED_HOSTS = ['127.0.0.1', 'example.com', 'www.example.com']

当然,重新启动 nginx 和 gunicorn 或任何为您的 Django 服务的东西。第一步但不是第二步,所有对站点的点击都是即时 400 错误(除非 DEBUG = Truesettings.py。)

【讨论】:

以上是关于django-allauth:如何修改电子邮件确认 url?的主要内容,如果未能解决你的问题,请参考以下文章

覆盖 django-allauth 表单域

markdown 修改送货确认电子邮件模板以考虑店内提货

使用 django-allauth 时如何自定义用户配置文件

如何使用 django-allauth 访问用户名和配置文件

如何使用 django-allauth 访问用户名和配置文件

如何编辑 django-allauth 默认模板?