烧瓶WTF错误-CSRF会话令牌丢失(但实际上没有)

问题描述 投票:1回答:1

当前正在尝试解决此问题,我浏览了许多帖子,但仍然无法解决此问题,因此此消息发送给社区:)

我正在为基于Flask的网站创建一个开发/测试环境,我必须将当前网站复制到一个子域中,例如从mydomain.comdev.mydomain.com,以此类推,以获取其他相关服务,例如弹性搜索(例如从es.mydomain.comes-dev.mydomain.com)。

所以我在这里,我通过Nginx,主网站dev.mydomain.com部署了所有内容,并且所有服务都在运行并且可以访问。但是,我实际上无法登录到Flask时,当实际上有2个会话令牌时会抛出错误400 missing CSRF session token ...似乎由于cookie包含2个session键,因此在表单提交过程中创建了1个重复项。

提交表单之前

  • 原始Cookie键:_ga=...; _gid=...; session=...
  • Dev cookie键:session=...; Domain=.dev.mydomain.com; Secure; HttpOnly; Path=/

提交表单后

  • 原始网站Cookie密钥:_ga=...; _gid=...; session=...
  • Dev wsitesite cookie键:_ga=...; _gid=...; session=...; session=...

通过csrf.init_app(app)为整个应用启用了CSRF,并且我的Flask配置为:

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

我正在尝试不同的配置风格,但到目前为止没有任何改进...

将一如既往地提供一些帮助,在此先感谢您:)

python session flask token csrf
1个回答
1
投票

为了记录,只需要设置SESSION_COOKIE_NAME配置参数即可解决该问题

cf。 https://flask.palletsprojects.com/en/1.1.x/config/#SESSION_COOKIE_NAME

© www.soinside.com 2019 - 2024. All rights reserved.