попытка удалить куки из всех страниц домена в приложении Springboot - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь очистить все cookies в домене, используя функцию выхода из системы, домен это localhost:8080

Когда я пытаюсь очистить cookie из dashboard cookie успешно очищен.Но когда я перехожу к editprofile из dashboard и пытаюсь очистить cookie, cookie не очищается, так как переменная cookie {{user.username}} все еще отображается в индексе.

Вот моя попытка:

$rootScope.logout = function() {
    delete $rootScope.user;
    $cookies.remove('token');
    //$location.path("/");
    $(location).attr('href', '/index');
    return;
};

Вот то, что определено на странице индекса

<a ng-show="user" class="item active" href="/dashboard">welcome {{user.username}}</a>

1 Ответ

0 голосов
/ 30 мая 2018

Чтобы удалить cookies, вы должны использовать

$cookies.remove("cookieName")

, поскольку у вас нет single page application, вы должны remove cookies с каждой страницы

$cookies.remove(v, {path: '/yourpage'});

Таким способом вы можете удалить все cookies

var cookies = $cookies.getAll(); 
angular.forEach(Object.keys(cookies), function (v, k) { 
        $cookies.remove(v, {path: '/yourpage'}); 
}); 

Код:

$rootScope.logout = function() { 
    delete $rootScope.user; 
    var cookies = $cookies.getAll(); 
    angular.forEach(Object.keys(cookies), function (v, k) { 
        $cookies.remove(v, {path: '/index'}); 
        $cookies.remove(v, {path: '/editprofile'}); 
        $cookies.remove(v, {path: '/'}); 
    }); 

    $cookies.remove("token", {path: '/index'}); 
    $cookies.remove("token", {path: '/editprofile'}); 
    $cookies.remove("token", {path: '/'}); 
    $(location).attr('href', '/index'); 
    return; 
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...