删除httpOnly cookie-Express

时间:2020-11-06 23:58:23

标签: javascript node.js typescript express cookies

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

我的登录端点很简单,像这样:

  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端点

const res = await axios.post(`${baseUrl}/authentication/login`, { email, password }, { withCredentials: true });

到目前为止,设置好了cookie。但是,我想在注销时删除这些cookie,因为它们是HttpOnly:true,因此我无法在前端删除它们。我尝试使用res.clearCookie()方法,但它们仍在浏览器中。

  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 cookie,这些cookie在注销时会被删除。

0 个答案:

没有答案