#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