【问题标题】:Flask: Heroku with custom domain name breaks sessions?Flask:具有自定义域名的 Heroku 会中断会话?
【发布时间】:2013-09-06 23:52:00
【问题描述】:

我有一个托管在 Heroku 上的 Flask 应用程序,而 Heroku 实例(比如“helloworld.herokuapp.com”)有一个自定义域名,比如“www.helloworld.com”。

当我通过本机 heroku URL 访问应用程序时,会话工作得非常好。当我在www.helloworld.com 访问它时,它们不起作用。我认为这是因为 Flask 正在签名的会话 cookie 用于错误的域。

我尝试将app.SESSION_COOKIE_DOMAINapp.SERVER_NAME 分配给'helloworld.com',但它仍然只为helloworld.herokuapp.com 签名会话cookie。

有什么方法可以强制会话 cookie 签名为我的自定义域?

【问题讨论】:

  • helloworld.com前面添加一个.,这样SESSION_COOKIE_DOMAIN就变成了.helloworld.com,然后再试一次。
  • 抱歉,没用。
  • Flask 是不是不允许跨域设置 cookie 什么的?
  • 你能分享一些代码吗?你如何设置 SESSION_COOKIE_DOMAIN 和 SERVER_NAME 变量?

标签: python session cookies flask


【解决方案1】:

经过大量测试和SESSION_COOKIE_DOMAINSERVER_NAME 的多次排列后,我得出结论认为问题出在Heroku。 Heroku 当前路由/连接到自定义域的方式会破坏域 cookie。

我通过迁移到 EC2 验证了这一点……现在一切正常。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 2021-05-18
    • 2020-08-17
    • 2020-01-05
    相关资源
    最近更新 更多