首页 > 解决方案 > 如何更改验证邮件中`GRAPHQL_AUTH`中的`frontend_domain`端口?

问题描述

我正在开发一个 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。

根据文档,我应该能够改变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

和变量已正确更改protocolpathfrontend_domain. 问题是我无法将用户直接重定向到前端。

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

标签: reactjsdjangographqljwtgraphene-django

解决方案


你只需要更新到最新版本。

pip install --upgrade django-graphql-auth

推荐阅读