refreshToken
This commit is contained in:
parent
e9cdb49787
commit
e5ee1481de
|
@ -8,6 +8,14 @@ export function login(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function refreshToken(data) {
|
||||||
|
return request({
|
||||||
|
url: '/auth/token/refresh/',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function logout() {
|
export function logout() {
|
||||||
return request({
|
return request({
|
||||||
url: '/auth/token/black/',
|
url: '/auth/token/black/',
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
import { Navbar, Sidebar, AppMain,TagsView } from './components'
|
import { Navbar, Sidebar, AppMain,TagsView } from './components'
|
||||||
import ResizeMixin from './mixin/ResizeHandler'
|
import ResizeMixin from './mixin/ResizeHandler'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { getToken } from '@/utils/auth' // get token from cookie
|
import { getToken,getRefresh } from '@/utils/auth' // get token from cookie
|
||||||
export default {
|
export default {
|
||||||
name: 'Layout',
|
name: 'Layout',
|
||||||
components: {
|
components: {
|
||||||
|
@ -64,12 +64,14 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let hasToken = getToken();
|
let hasToken = getToken();
|
||||||
/*debugger;
|
|
||||||
console.log(hasToken);*/
|
|
||||||
if (hasToken) {
|
if (hasToken) {
|
||||||
|
this.refreshCountData();
|
||||||
|
this.refreshtoken();
|
||||||
this.$store.dispatch("user/getCount", {});
|
this.$store.dispatch("user/getCount", {});
|
||||||
|
}else{
|
||||||
|
this.$router.push({name:'login'})
|
||||||
}
|
}
|
||||||
// this.refreshCountData();
|
// console.log('$store.state.user.refresh:'+this.$store.state.user.refresh);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
refreshCountData(){
|
refreshCountData(){
|
||||||
|
@ -80,12 +82,23 @@ export default {
|
||||||
this.$store.dispatch("user/getCount", {});
|
this.$store.dispatch("user/getCount", {});
|
||||||
}
|
}
|
||||||
},0)
|
},0)
|
||||||
},5000)
|
},50000)
|
||||||
|
},
|
||||||
|
refreshtoken(){
|
||||||
|
let refresh = getRefresh();
|
||||||
|
/* debugger;
|
||||||
|
console.log('refresh:'+refresh);
|
||||||
|
debugger;*/
|
||||||
|
// let refresh = this.$store.state.user.refresh;
|
||||||
|
this.timer = window.setInterval(() => {
|
||||||
|
if (refresh) {
|
||||||
|
this.$store.dispatch("user/refreshToken", refresh);
|
||||||
|
}
|
||||||
|
},3540000)
|
||||||
},
|
},
|
||||||
handleClickOutside() {
|
handleClickOutside() {
|
||||||
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
|
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
|
||||||
},
|
},
|
||||||
|
|
||||||
gotoTicketPage(){
|
gotoTicketPage(){
|
||||||
let path = this.$route.path;
|
let path = this.$route.path;
|
||||||
if(path==='/workflow/ticket'){
|
if(path==='/workflow/ticket'){
|
||||||
|
|
|
@ -2,6 +2,7 @@ const getters = {
|
||||||
sidebar: state => state.app.sidebar,
|
sidebar: state => state.app.sidebar,
|
||||||
device: state => state.app.device,
|
device: state => state.app.device,
|
||||||
token: state => state.user.token,
|
token: state => state.user.token,
|
||||||
|
refresh: state => state.user.refresh,
|
||||||
avatar: state => state.user.avatar,
|
avatar: state => state.user.avatar,
|
||||||
name: state => state.user.name,
|
name: state => state.user.name,
|
||||||
perms: state => state.user.perms,
|
perms: state => state.user.perms,
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
import { login, logout, getInfo } from '@/api/user'
|
import { login, logout, getInfo } from '@/api/user'
|
||||||
import { getCount } from '@/api/workflow'
|
import { getCount } from '@/api/workflow'
|
||||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
import { refreshToken } from '@/api/user'
|
||||||
|
import { getToken, setToken, removeToken,getRefresh, setRefresh } from '@/utils/auth'
|
||||||
import { resetRouter } from '@/router'
|
import { resetRouter } from '@/router'
|
||||||
|
|
||||||
const getDefaultState = () => {
|
const getDefaultState = () => {
|
||||||
return {
|
return {
|
||||||
token: getToken(),
|
token: getToken(),
|
||||||
name: '',
|
name: '',
|
||||||
|
refresh: getRefresh(),
|
||||||
avatar: '',
|
avatar: '',
|
||||||
count: {},
|
count: {},
|
||||||
perms: []
|
perms: []
|
||||||
|
@ -22,6 +24,9 @@ const mutations = {
|
||||||
SET_TOKEN: (state, token) => {
|
SET_TOKEN: (state, token) => {
|
||||||
state.token = token
|
state.token = token
|
||||||
},
|
},
|
||||||
|
SET_REFRESH: (state, refresh) => {
|
||||||
|
state.refresh = refresh
|
||||||
|
},
|
||||||
SET_NAME: (state, name) => {
|
SET_NAME: (state, name) => {
|
||||||
state.name = name
|
state.name = name
|
||||||
},
|
},
|
||||||
|
@ -44,9 +49,10 @@ const actions = {
|
||||||
login({ username: username.trim(), password: password }).then(response => {
|
login({ username: username.trim(), password: password }).then(response => {
|
||||||
const { data } = response;
|
const { data } = response;
|
||||||
commit('SET_TOKEN', data.access);
|
commit('SET_TOKEN', data.access);
|
||||||
|
commit('SET_REFRESH', data.refresh);
|
||||||
setToken(data.access);
|
setToken(data.access);
|
||||||
|
setRefresh(data.refresh);
|
||||||
resolve()
|
resolve()
|
||||||
|
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
})
|
})
|
||||||
|
@ -118,6 +124,21 @@ const actions = {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
,
|
||||||
|
refreshToken({ commit },ref) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
refreshToken({refresh:ref}).then((res) => {
|
||||||
|
const { data } = res;
|
||||||
|
commit('SET_TOKEN', data.access);
|
||||||
|
// commit('SET_REFRESH', data.refresh);
|
||||||
|
setToken(data.access);
|
||||||
|
// setRefresh(data.refresh);
|
||||||
|
resolve()
|
||||||
|
}).catch(error => {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
const TokenKey = 'token'
|
const TokenKey = 'token';
|
||||||
|
const refreshKey = 'refresh';
|
||||||
|
|
||||||
export function getToken() {
|
export function getToken() {
|
||||||
return Cookies.get(TokenKey)
|
return Cookies.get(TokenKey)
|
||||||
|
@ -13,13 +14,15 @@ export function setToken(token) {
|
||||||
export function removeToken() {
|
export function removeToken() {
|
||||||
return Cookies.remove(TokenKey)
|
return Cookies.remove(TokenKey)
|
||||||
}
|
}
|
||||||
|
export function getRefresh() {
|
||||||
|
return Cookies.get(refreshKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function setRefresh(refresh) {
|
||||||
|
return Cookies.set(refreshKey, refresh)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function removeRefresh() {
|
||||||
|
return Cookies.remove(refreshKey)
|
||||||
|
}
|
||||||
|
|
||||||
// export function refreshToken() {
|
|
||||||
// let token = getToken()
|
|
||||||
// let data = {"token": token}
|
|
||||||
// return request({
|
|
||||||
// url: '/token/refresh/',
|
|
||||||
// method: 'post',
|
|
||||||
// data
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ service.interceptors.response.use(
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
store.dispatch('user/resetToken').then(() => {
|
store.dispatch('user/logout').then(() => {
|
||||||
location.reload()
|
location.reload()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue