首页 > 解决方案 > 如何获取和删除特定域的 HTTP-Only cookie?

问题描述

我有一个登录组件,在成功响应后,正在设置一个 cookieset-cookie: COOKIENAME=b4a70c42sd23d2f32defe61b772366e12b59; Path=/; HttpOnly

我试图在每次登录之前删除此 cookie "Accessible to script No (HttpOnly)",或者换句话说,我尝试检查此特定域的 cookie 是否存在/仍然存在,然后将其删除。

我一直在尝试不同的方法来解决这个问题,但没有奏效。首先,我什至无法在浏览器控制台中获取 cookie。它总是空的,或者说没有 cookie。

`
 ...
 import { CookieService } from 'ngx-cookie-service';
 ...

 constructor(private cookieService: CookieService) {
     console.log( `${ this.cookieService.get('cookieName')}` );
     console.log( `browser.cookies.getAll() ==> ${ document.cookie.getAll() }`);
 }`

即使尝试获取所有浏览器 cookie cookies.getAll(),它也只是空的,因为这不适用于HTTP-Only cookies.

我用过ngx-cookie-service,当然还有在angular2-cookieng2-cookies中的调用,constructor()但总是没有价值。

当我通过chrome 设置搜索特定域 cookie 时,我得到了该域的所有 cookie。

PS 请求从我的本地主机发送到外部域(备份测试服务器)。域在响应后设置 cookie,然后在我的浏览器(chrome)上设置。

我发现了一种类似的问题,但首先没有提供解决方案/答案,其次似乎不完全是我想要实现的目标。还有其他问题的答案是它说不可能在 HTTP 之外删除仅 http 的 cookie

但如果 cookie 是 httpOnly cookie(带有 httpOnly 参数集的 cookie),您无法从 HTTP 外部读取、更改或删除它。

我哪里错了?在发送带有凭据的 cookie 之前,是否有可能在 HTTP 请求中休息/删除 HTTP-Only cookie?

标签: angularcookiessession-cookies

解决方案


推荐阅读