cookie操作及清除所有

2019-05-05  本文已影响0人  lesdom
export default {
    /**
     * cookie操作
     * 增 删 获取
     */
    cookie: {
        set: function (key, value,expireSeconds) {
            document.cookie = key + '=' + value + ';' + expireSeconds;
        },
        get: function (key) {
            // cookie 里获取 access_token
            let strCookie = document.cookie;
            // 将多cookie切割为多个名/值对
            let arrCookie = strCookie.split(';');
            let accessToken;
            // 遍历cookie数组,处理每个cookie对
            for (let i = 0; i < arrCookie.length; i++) {
                let arr = arrCookie[i].split('=');
                // 找到名称为access_token的cookie,并返回它的值
                if (key === arr[0]) {
                    accessToken = arr[1];
                    break;
                }
            }
            return accessToken;
        },
        delete: function (key) {
            let myDate = new Date();
            myDate.setTime(-1000); // 设置时间
            document.cookie = key + "=''; expires=" + myDate.toGMTString();
        }
    }
};

清除所有cookie

// 清除所有cookie
clearAllCookie () {
    let date=new Date();
    date.setTime(date.getTime()-10000);
    let keys = document.cookie.match(/[^ =;]+(?=\=)/g);
    console.log("需要删除的cookie名字:"+keys);
    if (keys) {
        for (let i =  keys.length; i--;)
          document.cookie=keys[i]+"=0; expire="+date.toGMTString()+"; path=/";
    }
}

清除本域名cookie

deleteCookies(){
  let keys = document.cookie.match(/[^ =;]+(?==)/g);
  if (keys) {
    for (var i = keys.length; i--;) {
      document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString() // 清除当前域名下的,例如:m.ratingdog.cn
      document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString() // 清除当前域名下的,例如 .m.ratingdog.cn
      document.cookie = keys[i] + '=0;path=/;domain=ratingdog.cn;expires=' + new Date(0).toUTCString() // 清除一级域名下的或指定的,例如 .ratingdog.cn
    }
  }
}

网站导航

网站导航

上一篇下一篇

猜你喜欢

热点阅读