記錄用戶登錄時(shí)長(zhǎng),既可以使用local storage實(shí)現(xiàn),然后拿到時(shí)間做差,看是否超時(shí);也可以用cookie指定過(guò)期時(shí)長(zhǎng),這樣我們直接判斷cookie值是否存在就可以了。我選擇的后者,代碼如下:


//設(shè)置cookie

var exp = new Date();

exp.getMilliseconds()

exp.setTime(exp.getTime() + 60 * 1000);//過(guò)期時(shí)間 1分鐘

console.log(exp.toGMTString())

//this.setCookie('isLogin', true,  exp.toGMTString())

document.cookie = 'isLogin' + '=' + true + ';expires=' + exp.toGMTString();

//此處賦值的是世界時(shí)間,和我國(guó)的時(shí)間差8小時(shí),不過(guò)千萬(wàn)不要把這8小時(shí)加上,直接賦值指定時(shí)長(zhǎng)就好


//獲取cookie,可以用js-cookie

import Cookies from 'js-cookie';

updated() {

  if (!Cookies.get('isLogin')) {

           this.$store.dispatch("setSignOut")//清空用戶登錄信息

           this.$router.push({

               name: 'login'//跳到登錄頁(yè)

           });

       }

   },

   activated() {

       if (!Cookies.get('isLogin')) {

           this.$store.dispatch("setSignOut")

           this.$router.push({

               name: 'login'

           });

       }

   },

//因?yàn)闆]有統(tǒng)一的入口,所以我在首頁(yè)的updated和activated中添加的判斷,并沒有在每個(gè)頁(yè)面都加,感覺沒必要

//還可以用這種方式獲取cookie,不需要導(dǎo)包了

function getCookie(cname){

var name = cname + "=";

var ca = document.cookie.split(';');

for(var i=0; i<ca.length; i++) {

var c = ca[i].trim();

if (c.indexOf(name)==0) { return c.substring(name.length,c.length); }

}

return "";

}


  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。