【问题标题】:Does Cookie expiration differs in chrome and firefox?chrome 和 firefox 的 Cookie 过期时间是否不同?
【发布时间】:2020-09-25 21:10:07
【问题描述】:

我一直在使用 cookie。所以观看了文档和一些博客,并像下面一样对 cookie 进行编码-->

def ProouctDetailView(request, slug):
    item = Item.objects.get(slug=slug)
    response = render(request, 'product.html', {'item' : item } )
    temp = request.COOKIES.get('pro', None)

    response.set_cookie('pro','{0} {1}'.format(temp, slug))

    return response

我在这里拿饼干。由于 django 不提供在单个 cookie 中设置多个值,我将所有值作为一个字符串(由空格分隔)并使用 split() 方法将它们拆分。然后我过滤为最近查看的部分生成查询集

def HomeListView(request):
    items = Item.objects.all()
    recent = None
    try:
       slug = request.COOKIES.get('pro').split(" ")
       recent = Item.objects.filter(slug__in= slug)
    except: 
        pass   
    return render(request, 'home.html', {'items': items, 'recent':recent})

从 cookie 中,我得到的是 items 对象的 slug,以便稍后我可以在最近查看的部分中显示它们,因为我没有在 set_cookie() 方法中提供任何 max_age 字段,它将设置为 none,这意味着当用户关闭浏览器会话时cookie会自动过期,意味着关闭浏览器,对吧?

但是,即使我关闭 chrome 并重新启动 chrome,最近查看的部分也不会过期。它还在那里。所以 cookie 在 chrome 中没有过期。但是如果我使用 firefox,那么当我重新启动 firefox 时 cookie 就会过期。

【问题讨论】:

    标签: python django cookies session-cookies


    【解决方案1】:

    一旦服务器将其过期日期设置为过去的日期,Cookie 应立即过期。

    在重新启动浏览器之前,Cookie 仍被视为有效。

    https://bugs.chromium.org/p/chromium/issues/detail?id=113073

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      相关资源
      最近更新 更多