Appearance
续签凭证
续签凭证功能在store中的详细配置如下:
js
// /store/modules/user.js
import { setCookie, getCookie, removeCookie, accessTokenKey, refreshTokenKey } from "@/utils/auth"
import { commonApi } from "@/api"
import modal from "@/plugins/modal.js"
const getDefaultState = () => {
return {
accessToken: getCookie(accessTokenKey) || "", // 认证token
refreshToken: getCookie(refreshTokenKey) || "", // 刷新token
}
}
const state = getDefaultState()
const mutations = {
// 重置初始化值
RESET_STATE: (state) => {
Object.assign(state, getDefaultState())
},
// 设置token
SET_TOKEN: (state, data) => {
const { accessToken, refreshToken, reFreshExpiresIn, tokenExpiresIn} = data
// 保持登录时 AccessToken的存储时间和refreshToken一样 不保持登录时 AccessToken的存储有效时间为 真实有效时间
const expiresIn = state.keepLogin === "1" ? reFreshExpiresIn : tokenExpiresIn
state.accessToken = accessToken
setCookie(accessTokenKey, accessToken, expiresIn/1000)
state.refreshToken = refreshToken
setCookie(refreshTokenKey, refreshToken, expiresIn/1000)
},
SET_USER_INFO: (state, userInfo) => {
state.userInfo = userInfo
},
// 清除token
CLEAR_AUTH: (state) => {
state.accessToken = ""
removeCookie(accessTokenKey)
state.refreshToken = ""
removeCookie(refreshTokenKey)
},
// 存储refreshToken
SET_REFRESH_TOKEN: (state, refreshToken) => {
state.refreshToken = refreshToken
setCookie(refreshTokenKey, refreshToken)
},
}
const actions = {
// 设置项目token
setToken({commit}, data) {
return new Promise((resolve, reject) => {
commit("SET_TOKEN", data)
resolve()
})
},
// 刷新token
refreshToken({commit}, refreshToken) {
return new Promise((resolve, reject) => {
commonApi.refreshToken({refreshToken}).then(data => {
commit("SET_TOKEN", data)
resolve()
})
})
},
}
export default {
namespaced: true,
state,
mutations,
actions
}getters.js 暴露
js
// /store/getters.js
const getters = {
// token
accessToken: state => state.user.accessToken,
refreshToken: state => state.user.refreshToken,
}
export default getters温馨提示
上面代码为部分代码,仅供参考

