当我刷新页面时,cookie会过期,我看不到任何数据

时间:2018-06-07 06:00:31

标签: angular5 angular6

我使用本地存储但是在注销后如果我点击相同的URL,用户能够再次登录,即使我检查了会话存储我面临同样的问题,有什么方法可以处理cookie / session使页面刷新或用户注销后点击相同的URL用户不应该登录。

logout() {
   this.cookie.delete("token");
   this.cookie.delete("userId");
   this.cookie.delete("accountId");
}

这就是我清除cookie的方式。

1 个答案:

答案 0 :(得分:0)

我为此编写了一个函数

function deleteCookies(removeCookies) {
    var cookies = document.cookie.split(";");
    for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i];
        var eqPos = cookie.indexOf("=");
        var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
        if(name in removeCookies)         
      document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
}

var removeCookieSet = ["token","userId","accountId"] ;
deleteCookies(removeCookieSet)

这个集合已经从我重写了所以你可以使用它。 Clearing all cookies with JavaScript

如果您想使用角度JS

,则上面是直接的
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {

 var removeCookieSet = ["token","userId","accountId"];

 for(i=0;i<removeCookieSet.length;i++)
  // Setting a cookie
  $cookies.remove(removeCookieSet[i]);
}]);

使用angular JS,你必须注入ngcookies

并使用typescript

https://tutorialedge.net/typescript/angular/angular-cookies-tutorial/