如何更改验证邮件中`GRAPHQL_AUTH`中的`frontend_domain`端口?

Posted

技术标签:

【中文标题】如何更改验证邮件中`GRAPHQL_AUTH`中的`frontend_domain`端口?【英文标题】:How to change the `frontend_domain` port in `GRAPHQL_AUTH` in the verification mail? 【发布时间】:2021-11-11 12:01:53 【问题描述】:

我正在开发一个 Docker-Django-Graphene-React 堆栈,其中 Django 是后端,它通过来自作为前端的 React 的 Graphene 接收 GraphQL 查询。一切都在 docker 容器中运行。 Django 使用 8000 端口,React 使用 3000。

我目前正在使用 python 的django-graqhql-auth 包进行身份验证。

当用户在前端表单上注册自己时,register 会正确更改到后端并创建帐户。

同时向用户的注册邮件地址发送一封邮件,其中包含一个带有令牌的验证链接,该令牌必须与 veryifyToken 突变一起使用,以便将帐户标记为已验证。

以下是链接示例: http://localhost:8000/activate/eyJ1c2VybmFtZSI6IkpvaG5zb2ZuZiIsImFjdGlvbiI6ImFjdGl2YXRpb24ifQ:1mQr0R:Wh25LJ6A1PRVCQT730kXXIk4i2QJgz1a4aNDe7RoZM0

问题是链接上的端口是8000,它重定向到后端(Django)。我想在前端 (React) 端口 3000 上重定向用户。

根据documentation,我应该可以更改我所做的frontend_domain。我还更改了 pathprotocol 值,看看它是否有效:

这是我在后端的 settings.py 文件中放入的内容:

GRAPHQL_AUTH = 
    "EMAIL_TEMPLATE_VARIABLES": 
        "protocol": "https",
        "frontend_domain": "localhost:3000",
        "path": "verify",
    

我最终得到了这个链接:

https://localhost:8000/verify/eyJ1c2VybmFtZSI6IkpvaG5zZmdvZmdzbmRmIiwiYWN0aW9uIjoiYWN0aXZhdGlvbiJ9:1mQrIr:2o818drqPP8oVTE4E6fg2F6vMu2zITOjkF96z5K1whY

protocolpath 变量已正确更改,但 frontend_domain 未正确更改。问题是我无法将用户直接重定向到前端。

有没有办法解决这个问题?还是我必须在后端创建一个路由,将用户重定向到带有令牌的前端,以便我可以使用 verifyToken 突变?

【问题讨论】:

【参考方案1】:

您只需更新到最新版本。

pip install --upgrade django-graphql-auth

【讨论】:

以上是关于如何更改验证邮件中`GRAPHQL_AUTH`中的`frontend_domain`端口?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改laravel中验证错误的键

如何使用与 Firebase 提供的不同的电子邮件服务来验证电子邮件和更改密码?

注册新帐户时如何要求 asp.net forms 身份验证发送验证电子邮件?

Cognito 保存用户池中的更改不起作用

如何更改 Firebase 中的登录尝试次数?

如何根据下拉更改 TextArea 验证