【问题标题】:Django SESSION_COOKIE_DOMAIN on localhost本地主机上的 Django SESSION_COOKIE_DOMAIN
【发布时间】:2020-03-30 12:36:26
【问题描述】:

当我设置SESSION_COOKIE_DOMAIN = '.mysite.com' 然后运行生产站点时,该站点会创建正确的跨域cookie 并将其设置为.mysite.com。但是,如果我设置 SESSION_COOKIE_DOMAIN = '.localhost' 并在 localhost:8000 运行本地开发服务器,则创建的 cookie 是非跨域 cookie localhost

为什么会这样?

谢谢。

【问题讨论】:

    标签: django session-cookies


    【解决方案1】:

    这与浏览器和 cookie 的工作方式有关。因为不允许将 cookie 设置为 .com 之类的内容,所以也不能将其设置为 .localhost。

    您可以在此处查看更多信息:https://code.djangoproject.com/ticket/10560。看起来 Django 中没有真正的解决方案。我真希望他们会警告我们,而不是仅仅打破。

    虽然我没有一个好的解决方案。对于测试,您可以将主机文件设置为使用类似 test.com 而不是 localhost 来指向您的运行服务器。

    【讨论】:

      【解决方案2】:

      对于开发服务器,你可以使用

      SESSION_COOKIE_SECURE= False #default use just to override your prod setting
      SESSION_COOKIE_DOMAIN= None  #default  use just to override your prod setting
      

      或者你可以用主机的文件解析域名

       SESSION_COOKIE_DOMAIN= '.localhost'
      

      或者类似的东西

      SESSION_COOKIE_SECURE= False
      SESSION_COOKIE_DOMAIN=  "127.0.0.1"
      

      【讨论】:

        猜你喜欢
        • 2010-11-25
        • 2020-12-23
        • 1970-01-01
        • 2019-10-31
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 2011-05-13
        相关资源
        最近更新 更多