【问题标题】:Why does my Express.js BackEnd delete a cookie successfully in Chrome, but not in Firefox?为什么我的 Express.js 后端在 Chrome 中成功删除了一个 cookie,但在 Firefox 中却没有?
【发布时间】:2020-04-08 20:37:03
【问题描述】:

根据this 问题,我的代码与cookie 不同,但似乎相同。这是我的 cookie 设置代码:

res.cookie(
    'access_token', 'Bearer '+ token, {
      expires: new Date(Date.now() + 900000), // cookie will be removed after 15 mins
      httpOnly: true
    })

这是我的 cookie 删除代码:

app.get('/logout', function(req, res) {
  res.clearCookie('access_token', { domain:'localhost', path: '/', httpOnly: true })
  .redirect('http://localhost:4200/avior/login')
});

根据 Express JS API 文档,不应在 clearCookie 方法中设置 expire/maxAge。这正是我所做的。这只是因为我使用 httpOnly 造成的问题吗?

【问题讨论】:

    标签: javascript node.js express cookies httponly


    【解决方案1】:

    即使我在我的 Angular 项目中也遇到了类似的问题。我通过设置路径解决了我的问题:“/” 同时创建和删除cookies如下

    res.cookie(
      'access_token', 'Bearer '+ token, {
      expires: new Date(Date.now() + 900000), // cookie will be removed after 15 mins
      httpOnly: true,
      path: '/'
    })
    

    【讨论】:

    • 是的,我已经设置了域和路径,现在它可以工作了!很奇怪,因为默认值应该没问题。
    • 域名是不必要的,你的答案是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2023-03-23
    • 2015-12-10
    • 2012-12-01
    相关资源
    最近更新 更多