登录超时,返回到登录页面 vue
首先登录的时候,将登录接口返回的token用localStorage保存起来,然后在axios的请求拦截里将token添加到请求头部header里,作为之后前后端的通信票据
axios. interceptors. request. use ( config => {
var data = { }
if ( typeof ( config. data) === 'string' ) {
let str = `' ${ config. data} '`
str = str. substring ( 1 , str. length - 1 )
data = JSON . parse ( str)
} else {
data = config. data
}
var isLoginRegiste = [ 'login' , 'registe' ] . indexOf ( data. methods) !== - 1
if ( ! isLoginRegiste) {
config. headers. token = localStorage. token
}
return config;
} )
在axios的响应拦截里处理,判断后端接口返回的状态码,根据状态码判断登录是否超时,如果超时,那么跳转到登录页面,并且需要清空浏览器的缓存:
import 'router' from 'vue-router'
import { Message } from 'element-ui'
axios. interceptors. response. use ( response => {
var data = response. data
if ( data. code === 23001 ) {
var msg = '登录超时'
Message ( {
message: msg,
type: 'error' ,
duration: 3 * 1000
} )
router. push ( '/login' )
localStorage. removeItem ( 'token' )
} else {
return data
}
} )