Как изменить порт `frontend_domain` в «GRAPHQL_AUTH» в проверочном письме?

#reactjs #django #graphql #jwt #graphene-django

Вопрос:

Я работаю над стеком Docker-Django-Graphene-React, где Django-это серверная часть, которая получает запросы GraphQL через Graphene от React, который действует как интерфейс. Все работает в контейнерах docker. Django на порту 8000 и реагирует на 3000.

В настоящее время я работаю над аутентификацией с django-graqhql-auth помощью пакета python.

Когда пользователь регистрируется в форме интерфейса, register мутация правильно вносится в серверную часть и создается учетная запись.

Одновременно на зарегистрированный адрес электронной почты пользователя отправляется письмо, содержащее ссылку для подтверждения с токеном, который необходимо использовать с veryifyToken мутацией, чтобы отметить учетную запись как подтвержденную.

Вот пример ссылки: http://localhost:8000/activate/eyJ1c2VybmFtZSI6IkpvaG5zb2ZuZiIsImFjdGlvbiI6ImFjdGl2YXRpb24ifQ:1mQr0R:Wh25LJ6A1PRVCQT730kXXIk4i2QJgz1a4aNDe7RoZM0

Проблема в том, что порт по ссылке 8000, который перенаправляет на серверную часть (Django). Я хотел бы перенаправить пользователя на порт 3000, который является интерфейсом (React).

Согласно документации, я должен быть в состоянии изменить frontend_domain то, что я сделал. Я также изменил значения path и protocol , чтобы посмотреть, работает ли это:

Вот что я поместил в settings.py файл своего бэкенда:

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

И в итоге я получаю эту ссылку:

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

Переменные protocol и path были правильно изменены, но не те frontend_domain . Проблема в том, что я не могу перенаправить пользователя непосредственно на интерфейс.

Есть ли способ это исправить? Или мне нужно создать маршрут на бэкэнде, который перенаправит пользователя на интерфейс с помощью токена, чтобы я мог использовать verifyToken мутацию?

Ответ №1:

вам просто нужно обновить до последней версии.

 pip install --upgrade django-graphql-auth