如何做登陆过期时间,利用cookie

312 阅读1分钟

1.利用插件Cookie-js,使用之后可以直接用键值对的形式设置

    Cookies.set('name', 'value', {
        expires: expiresTime,
        });
        直接设置自己想要的过期时间

2.封装存储cookie过程,js直接写

     setCookie(name, value, hours) {
      hours = hours || 0;
      var expires = "";
      if (hours !== 0) {
        var date = new Date();
        date.setTime(date.getTime() + hours * 3600000);
        expires = ";expires=" + date.toGMTString();
      }
      document.cookie = name + "=" + escape(value) + expires + ";path=/";
}

由于项目是vue项目里面的,调用的话直接this.setCookie()进行传值,我这里是按照小时计算的,换算成时间戳,可以按照自己的需求
去写,这里的date.toGMTString()是将date对象按照GMT时间换成字符串,escape()方法可以对字符串进行编码,这样可以在所有计算机
上读取该字符串。

由于是一个vue项目,配合拦截器,实现时间过期跳转回登陆页面

    router.beforeEach((to, from, next) => {
      if (to.path === "/login") {
        return next();
      }
      const LoginStatus = document.cookie;
      if (LoginStatus) {
        next();
      } else {
        next("/login");
      }
    });

3.还有一种就是登陆的时候获取一个token,然后在调取接口的时候每次都把token拿到传过去,至于是否过期让后台判断返回