mirror of
https://github.com/flipped-aurora/gin-vue-admin.git
synced 2026-09-21 20:35:16 +00:00
增加令牌自动续期功能
This commit is contained in:
@@ -7,14 +7,6 @@ const whiteList = ['login', 'register']
|
||||
|
||||
router.beforeEach(async(to, from, next) => {
|
||||
const token = store.getters['user/token']
|
||||
// if (token) {
|
||||
// const expiresAt = store.getters['user/expiresAt']
|
||||
// const nowUnix = new Date().getTime()
|
||||
// const hasExpires = (expiresAt - nowUnix) < 0
|
||||
// if (hasExpires) {
|
||||
// store.dispatch['user/claerAll']
|
||||
// }
|
||||
// }
|
||||
// 在白名单中的判断情况
|
||||
if (whiteList.indexOf(to.name) > -1) {
|
||||
if (token) {
|
||||
|
||||
@@ -11,7 +11,6 @@ export const user = {
|
||||
authority: "",
|
||||
},
|
||||
token: "",
|
||||
expiresAt: ""
|
||||
},
|
||||
mutations: {
|
||||
setUserInfo(state, userInfo) {
|
||||
@@ -22,14 +21,9 @@ export const user = {
|
||||
// 这里的 `state` 对象是模块的局部状态
|
||||
state.token = token
|
||||
},
|
||||
setExpiresAt(state, expiresAt) {
|
||||
// 这里的 `state` 对象是模块的局部状态
|
||||
state.expiresAt = expiresAt
|
||||
},
|
||||
LoginOut(state) {
|
||||
state.userInfo = {}
|
||||
state.token = ""
|
||||
state.expiresAt = ""
|
||||
router.push({ name: 'login', replace: true })
|
||||
sessionStorage.clear()
|
||||
window.location.reload()
|
||||
@@ -45,7 +39,6 @@ export const user = {
|
||||
const res = await login(loginInfo)
|
||||
commit('setUserInfo', res.data.user)
|
||||
commit('setToken', res.data.token)
|
||||
commit('setExpiresAt', res.data.expiresAt)
|
||||
if (res.code == 0) {
|
||||
const redirect = router.history.current.query.redirect
|
||||
if (redirect) {
|
||||
@@ -69,8 +62,6 @@ export const user = {
|
||||
token(state) {
|
||||
return state.token
|
||||
},
|
||||
expiresAt(state) {
|
||||
return state.expiresAt
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -21,13 +21,13 @@ const showLoading = () => {
|
||||
}
|
||||
|
||||
const closeLoading = () => {
|
||||
acitveAxios--
|
||||
if (acitveAxios <= 0) {
|
||||
clearTimeout(timer)
|
||||
loadingInstance && loadingInstance.close()
|
||||
acitveAxios--
|
||||
if (acitveAxios <= 0) {
|
||||
clearTimeout(timer)
|
||||
loadingInstance && loadingInstance.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
//http request 拦截器
|
||||
//http request 拦截器
|
||||
service.interceptors.request.use(
|
||||
config => {
|
||||
showLoading()
|
||||
@@ -37,7 +37,7 @@ service.interceptors.request.use(
|
||||
config.headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'x-token': token,
|
||||
'x-user-id':user.ID
|
||||
'x-user-id': user.ID
|
||||
}
|
||||
return config;
|
||||
},
|
||||
@@ -57,6 +57,9 @@ service.interceptors.request.use(
|
||||
service.interceptors.response.use(
|
||||
response => {
|
||||
closeLoading()
|
||||
if (response.headers["new-token"]) {
|
||||
store.commit('user/setToken', response.headers["new-token"])
|
||||
}
|
||||
if (response.data.code == 0 || response.headers.success === "true") {
|
||||
return response.data
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user