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

How to change the `frontend_domain` port in `GRAPHQL_AUTH` in the verification mail?

我正在研究 Docker-Django-Graphene-React 堆栈,其中 Django 是后端,它通过充当前端的 React 通过 Graphene 接收 GraphQL 查询。一切都在 docker 个容器中运行。 Django 在端口 8000 上,React 在 3000 上。

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

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

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

下面是 link 的一个例子: http://localhost:8000/activate/eyJ1c2VybmFtZSI6IkpvaG5zb2ZuZiIsImFjdGlvbiI6ImFjdGl2YXRpb24ifQ:1mQr0R:Wh25LJ6A1PRVCQT730kXXIk4i2QJgz1a4aNDe7RoZM0

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

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

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

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

最后我得到了这个 link:

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

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

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

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

pip install --upgrade django-graphql-auth

我注意到你在 protocol: "https" 中使用了,但应该是 protocol: "http"。

我在使用 Django 和 Graphql Auth 的同一个项目中,我使用协议将电子邮件发送到前端 Next.js。

GRAPHQL_AUTH = {
        "EMAIL_TEMPLATE_VARIABLES": {
        "protocol": "http",
        "frontend_domain": "localhost:3000",
        "path": "verify",
      } 
}

我可能会这么晚才回答,但将 frontend_domain 替换为 domain 就可以了。