Redirect to login page when refresh token is expired

pull/3445/head
johnniang 2019-05-17 02:22:41 +08:00
parent ff33a5f6d6
commit 8e3698b5ca
1 changed files with 7 additions and 3 deletions

View File

@ -31,16 +31,20 @@ async function reRequest(error) {
let refreshTask = null let refreshTask = null
async function refreshToken(error) { async function refreshToken(error) {
const refreshToken = store.getters.token.refresh_token
try { try {
if (refreshTask === null) { if (refreshTask === null) {
refreshTask = store.dispatch('refreshToken', store.getters.token.refresh_token) refreshTask = store.dispatch('refreshToken', refreshToken)
} }
await refreshTask await refreshTask
refreshTask = null
} catch (err) { } catch (err) {
if (err.response && err.response.data && err.response.data.data === refreshToken) {
router.push({ name: 'Login' })
}
Vue.$log.error('Failed to refresh token', err) Vue.$log.error('Failed to refresh token', err)
} finally {
refreshTask = null
} }
// Rerequest the request // Rerequest the request
return reRequest(error) return reRequest(error)