是否可以删除设置为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在注销时会被删除。