記錄用戶登錄時長,既可以使用local storage實現,然后拿到時間做差,看是否超時;也可以用cookie指定過期時長,這樣我們直接判斷cookie值是否存在就可以了。我選擇的后者,代碼如下:
//設置cookie
var exp = new Date();
exp.getMilliseconds()
exp.setTime(exp.getTime() + 60 * 1000);//過期時間 1分鐘
console.log(exp.toGMTString())
//this.setCookie('isLogin', true, exp.toGMTString())
document.cookie = 'isLogin' + '=' + true + ';expires=' + exp.toGMTString();
//此處賦值的是世界時間,和我國的時間差8小時,不過千萬不要把這8小時加上,直接賦值指定時長就好
//獲取cookie,可以用js-cookie
import Cookies from 'js-cookie';
updated() {
if (!Cookies.get('isLogin')) {
this.$store.dispatch("setSignOut")//清空用戶登錄信息
this.$router.push({
name: 'login'//跳到登錄頁
});
}
},
activated() {
if (!Cookies.get('isLogin')) {
this.$store.dispatch("setSignOut")
this.$router.push({
name: 'login'
});
}
},
//因為沒有統一的入口,所以我在首頁的updated和activated中添加的判斷,并沒有在每個頁面都加,感覺沒必要
//還可以用這種方式獲取cookie,不需要導包了
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 "";
}
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業制作大氣、美觀的優秀網站,并且能夠搭建符合百度排名規范的網站基底,使您的網站無需額外費用,即可穩步提升排名至首頁。歡迎體驗最佳的哈爾濱網站建設。