TOKEN 从localStorage移至cookie

This commit is contained in:
sakuya 2022-05-24 00:42:41 +08:00
parent 8c6ad81219
commit 0ace9a1c0e
4 changed files with 61 additions and 29 deletions

View File

@ -36,7 +36,7 @@ router.beforeEach(async (to, from, next) => {
//动态标题
document.title = to.meta.title ? `${to.meta.title} - ${config.APP_NAME}` : `${config.APP_NAME}`
let token = tool.data.get("TOKEN");
let token = tool.cookie.get("TOKEN");
if(to.path === "/login"){
//删除路由(替换当前layout路由)

View File

@ -11,7 +11,7 @@ axios.defaults.timeout = sysConfig.TIMEOUT
// HTTP request 拦截器
axios.interceptors.request.use(
(config) => {
let token = tool.data.get("TOKEN");
let token = tool.cookie.get("TOKEN");
if(token){
config.headers[sysConfig.TOKEN_NAME] = sysConfig.TOKEN_PREFIX + token
}

View File

@ -1,8 +1,8 @@
/*
* @Descripttion: 工具集
* @version: 1.1
* @version: 1.2
* @LastEditors: sakuya
* @LastEditTime: 2021年7月20日10:58:41
* @LastEditTime: 2022年5月24日00:28:56
*/
import CryptoJS from 'crypto-js';
@ -11,44 +11,34 @@ const tool = {}
/* localStorage */
tool.data = {
/**
* 设置缓存
* @param {*} key
* @param {*} data
* @param {*} time 过期时间 单位秒 默认0 不过期
* @returns
*/
set(key, data, time = 0) {
let cacheVal = {
val: data,
time: parseInt(time) === 0 ? 0 : parseInt(time) * 1000 + new Date().getTime()
};
return localStorage.setItem(key, JSON.stringify(cacheVal));
set(key, data, datetime = 0) {
let cacheValue = {
content: data,
datetime: parseInt(datetime) === 0 ? 0 : new Date().getTime() + parseInt(datetime) * 1000
}
return localStorage.setItem(key, JSON.stringify(cacheValue))
},
get(key) {
try {
const value = JSON.parse(localStorage.getItem(key))
if (value) {
let now = new Date().getTime();
if (now > value.time && value.time != 0) {//缓存过期
let nowTime = new Date().getTime()
if (nowTime > value.datetime && value.datetime != 0) {
localStorage.removeItem(key)
return null;
}
return value.val
return value.content
}
return null
} catch (e) {
} catch (err) {
return null
}
},
del (key) {
return localStorage.removeItem(key);
},
remove(table) {
return localStorage.removeItem(table);
remove(key) {
return localStorage.removeItem(key)
},
clear() {
return localStorage.clear();
return localStorage.clear()
}
}
@ -75,6 +65,46 @@ tool.session = {
}
}
/*cookie*/
tool.cookie = {
set(name, value, config={}) {
var cfg = {
expires: null,
path: null,
domain: null,
secure: false,
httpOnly: false,
...config
}
var cookieStr = `${name}=${escape(value)}`
if(cfg.expires){
var exp = new Date()
exp.setTime(exp.getTime() + parseInt(cfg.expires) * 1000)
cookieStr += `;expires=${exp.toGMTString()}`
}
if(cfg.path){
cookieStr += `;path=${cfg.path}`
}
if(cfg.domain){
cookieStr += `;domain=${cfg.domain}`
}
document.cookie = cookieStr
},
get(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"))
if(arr != null){
return unescape(arr[2])
}else{
return null
}
},
remove(name){
var exp = new Date()
exp.setTime(exp.getTime() - 1)
document.cookie = `${name}=;expires=${exp.toGMTString()}`
}
}
/* Fullscreen */
tool.screen = function (element) {
var isFull = !!(document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement || document.fullscreenElement);

View File

@ -169,7 +169,9 @@
//token
var user = await this.$API.auth.token.post(data)
if(user.code == 200){
this.$TOOL.data.set("TOKEN", user.data.token)
this.$TOOL.cookie.set("TOKEN", user.data.token, {
expires: this.ruleForm.autologin? 24*60*60 : 0
})
this.$TOOL.data.set("USER_INFO", user.data.userInfo)
}else{
this.islogin = false