首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除httpOnly cookies快递

删除httpOnly cookies快递
EN

Stack Overflow用户
提问于 2020-11-06 23:58:23
回答 1查看 2.8K关注 0票数 3

是否可以删除设置为HttpOnly:true的浏览器cookie?

我的登录端点很简单,如下所示:

代码语言:javascript
复制
  async login(@Ip() ipAddress, @Request() req, @Res() res: Response) {
      const auth = await this.basicAuthService.login(req.user, ipAddress);
      const cookieOptions = setTokenCookie();
      res.cookie('token', auth.token,  { httpOnly: true, expires: myDate()});
      res.cookie('refreshToken', auth.refreshToken, { httpOnly: true, expires: myDate()});
      res.send(auth);
    }

工作非常完美,我用axios调用了我的/login前端

代码语言:javascript
复制
const res = await axios.post(`${baseUrl}/authentication/login`, { email, password }, { withCredentials: true });

到目前为止,很好,饼干已经准备好了。但是我想在注销时删除这些cookie,因为它们是HttpOnly:true,所以我不能在前端删除它们。我尝试过使用res.clearCookie()方法,但它们仍然在浏览器中。

代码语言:javascript
复制
  async logout(@Request() req, @Res() res: Response) {
      res.clearCookie('refreshToken' ,{ domain: 'localhost', path: '/', expires: new Date(0) });
      res.clearCookie('token', { domain: 'localhost', path: '/', expires: new Date(0) });
      console.log('cookies deleted');
      res.send();
    }

我认为这是不可能的,然后,我尝试登录我的Facebook帐户,我能够看到一些HttpOnly:true饼干,当注销时被删除。

EN

回答 1

Stack Overflow用户

发布于 2022-09-06 17:08:17

我知道这个问题差不多有两年了,但这是我在试图解决同一个问题时发现的第一个联系。

来自快递4.x - API参考

Web浏览器和其他兼容的客户端只有在给定的选项与res.cookie()相同的情况下才会清除cookie,这不包括expires和maxAge。

要正确删除httpOnly cookie,必须将其作为第二个参数中的选项传递如下

代码语言:javascript
复制
res.clearCookie('token', { httpOnly: true });

我相信这同样适用于sameSitesecure等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64723114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档