From 6941addca32211627d52010a4b5ee50ffc0ce6d3 Mon Sep 17 00:00:00 2001 From: qrsm Date: Wed, 15 May 2019 18:05:59 -0300 Subject: [PATCH] =?UTF-8?q?Implementa=C3=A7=C3=A3o=20da=20expira=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/axios.js | 18 +++++++++++++++++- store/auth.js | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/plugins/axios.js b/plugins/axios.js index d4fa32fb..2f89076e 100644 --- a/plugins/axios.js +++ b/plugins/axios.js @@ -1,3 +1,19 @@ -export default function({ $axios, store }) { +import { Toast } from 'buefy/dist/components/toast' +export default function({ $axios, store, redirect }) { $axios.setToken(store.state.auth.token, 'Bearer') + $axios.onError(error => { + const code = parseInt(error.response && error.response.status) + if ( + code === 400 && + error.response.data.code === process.env.errors.INVALID_TOKEN + ) { + Toast.open({ + type: 'is-danger', + message: 'Login expirado', + duration: 5000 + }) + store.dispatch('auth/logout') + redirect('/login') + } + }) } diff --git a/store/auth.js b/store/auth.js index 494479fc..78abaa7c 100644 --- a/store/auth.js +++ b/store/auth.js @@ -5,10 +5,12 @@ export const state = () => ({ export const mutations = { setUser(state, user) { + persist('user', user) state.user = user }, setToken(state, token) { + persist('token', token) state.token = token } } @@ -29,8 +31,6 @@ export const actions = { .$post('/api/auth', { username, password }) .then(({ token, user }) => { this.$axios.setToken(token, 'Bearer') - persist('token', token) - persist('user', user) commit('setToken', token) return commit('setUser', user) })