Я использую ngx-cookie-service для хранения своего токена, но когда я нажимаю «Отключить», файлы cookie не удаляются каждый раз. Иногда это работает, но иногда это не так.
иногда мне нужно просто перезагрузить страницу, чтобы убедиться, что файлы cookie удалены, иногда это работает нормально, но не перенаправляет меня на страницу входа. я тестировал его на локальном хосте и в сборке тоже самое. для браузера я использую хром
Чтобы установить свой токен, я использую это:
setAuth(value, expireTime): void {
this.cookieService.set('id_token', value, expireTime, '../');
}
Я использую следующий код для удаления файла cookie:
clearCookies(){this.cookieService.deleteAll('../');}
и это моя функция выхода из системы:
logOut() {
let path = location.pathname;
if (path.indexOf('/panier') > -1 || path.indexOf('/store') > -1) {
this.setLogout({ value: true });
} else {
this.disconnect().subscribe(res => {
if (res.status == 'success') {
this.setLogout({ value: false })
this.clearCookies();
this.router.navigate(['/login'])
}
})
}
}
У меня была такая же проблема в Angular8 (также в Angular 6 и 7 раньше). Я нашел ответ в документации: https://www.npmjs.com/package/ngx-cookie-сервис
По-видимому, служба cookie сохраняет файлы cookie по пути. Итак, как указано в документации, если вы не уверены, по какому пути вы должны удалить: добавьте '/'
Я использовал следующий метод
logout(): void {
this.cookieService.delete('TESTCOOKIE', '/');
}
это работает для меня сейчас.
вы можете попробовать с подпиской
logout() {
this.cookieService.deleteAll('/', 'xyz.net');
}
здесь '/' - это путь и имя домена xyz.net, которые вы указали при настройке файла cookie. этот код работает для меня. он удалит все файлы cookie с тем же доменом, я думаю