我有一个登录组件,在成功响应后,将设置一个cookie set-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-cookie
和ng2-cookies
,当然还有constructor()
等中的调用,但始终没有价值。
当我通过chrome settings搜索特定的域cookie时,我会获得该域的所有cookie。
P.S。请求从我的本地主机发送到外部域(备份测试服务器)。域在响应后设置cookie,然后在我的浏览器(chrome)上设置。
我找到了一种similar question,但是首先没有提供解决方案/答案,其次似乎也不是我想要达到的目标。 还有一个答案为 it's not possible to remove a http-only cookie outside the HTTP 的问题。
但是,如果cookie是httpOnly cookie(设置了httpOnly参数的cookie),则无法从HTTP外部读取,更改或删除它。
我要去哪里错了?在发送带有凭据的邮件之前,是否有可能在HTTP请求中保留/删除仅HTTP的cookie?