prevent infinit loop on logiin page, better error handling
This commit is contained in:
parent
eebb3fe094
commit
7e4b5219ab
@ -1,4 +1,4 @@
|
|||||||
export default function ({ $axios, store, redirect }) {
|
export default function ({ $axios, store, redirect, route }) {
|
||||||
$axios.onRequest((config) => {
|
$axios.onRequest((config) => {
|
||||||
const token = store.state.auth.jwtToken
|
const token = store.state.auth.jwtToken
|
||||||
if (token) {
|
if (token) {
|
||||||
@ -17,13 +17,13 @@ export default function ({ $axios, store, redirect }) {
|
|||||||
const originalRequest = error.config
|
const originalRequest = error.config
|
||||||
|
|
||||||
// prevent infinite loop
|
// prevent infinite loop
|
||||||
if (error.response.status === 401 && originalRequest.url.includes('auth/refresh')) {
|
if (error.response.status === 401 && originalRequest.url.includes('auth/refresh') && route.path !== '/') {
|
||||||
store.commit('auth/REMOVE_TOKEN')
|
store.commit('auth/REMOVE_TOKEN')
|
||||||
redirect('/')
|
redirect('/')
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error.response.status === 401 && !originalRequest._retry) {
|
if (error.response.status === 401 && !originalRequest._retry && !originalRequest.url.includes('auth/token')) {
|
||||||
originalRequest._retry = true
|
originalRequest._retry = true
|
||||||
return $axios.post('auth/token/refresh/', {
|
return $axios.post('auth/token/refresh/', {
|
||||||
refresh: store.state.auth.jwtRefresh
|
refresh: store.state.auth.jwtRefresh
|
||||||
@ -42,8 +42,11 @@ export default function ({ $axios, store, redirect }) {
|
|||||||
$axios.onError((error) => {
|
$axios.onError((error) => {
|
||||||
const code = parseInt(error.response && error.response.status)
|
const code = parseInt(error.response && error.response.status)
|
||||||
|
|
||||||
if (code === 400) {
|
if (code === 401 && route.path !== '/') {
|
||||||
redirect('/')
|
redirect('/')
|
||||||
|
} else if (code !== 401) {
|
||||||
|
store.commit('UPDATE_SHOW_ERROR_ALERT', true)
|
||||||
|
store.commit('UPDATE_ERROR_AERT_MESSAGE', error)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user