Flask Ошибка WTF - токен сеанса CSRF отсутствует (но на самом деле нет) - PullRequest
0 голосов
/ 03 апреля 2020

В настоящее время пытаюсь решить эту проблему, я просмотрел много сообщений, но все еще не могу решить эту проблему, поэтому это сообщение для сообщества:)

Я создаю среду разработки / тестирования для веб-сайта на основе Flask и мне приходится дублировать текущий веб-сайт на поддомен, например, от mydomain.com до dev.mydomain.com и т. д. для дополнительных сопутствующих услуг, таких как поиск elasti c (например, от es.mydomain.com до es-dev.mydomain.com).

Итак, я развернул все через Nginx, основной сайт dev.mydomain.com и все службы работают и доступны. НО я не могу войти в Flask, что выдает мне ошибку 400 missing CSRF session token, когда на самом деле есть 2 токена сеанса ... кажется, что 1 дубликат создается в процессе отправки формы, поскольку повар ie держит 2 session ключи.

Перед отправкой формы

  • Оригинальный повар ie ключи: _ga=...; _gid=...; session=...
  • Девчонка ie ключи: session=...; Domain=.dev.mydomain.com; Secure; HttpOnly; Path=/

После отправки формы

  • Оригинальный веб-сайт повара ie ключи: _ga=...; _gid=...; session=...
  • Dev wbesite cook ie ключи: _ga=...; _gid=...; session=...; session=...

CSRF включен для всего приложения через csrf.init_app(app), и моя конфигурация Flask:

SECRET_KEY = os.getenv("SECRET_KEY")
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_HTTPONLY = True
REMEMBER_COOKIE_SECURE = True
REMEMBER_COOKIE_HTTPONLY = True

Я пробую разные варианты конфигурации, но без улучшения пока ...

Как всегда, будет полезна некоторая помощь, заранее спасибо:)

...