axios拦截器判断toke是否过期
时间: 2023-07-21 20:04:30 浏览: 81
可以使用axios的拦截器来判断token是否过期,具体实现如下:
```javascript
import axios from 'axios'
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 5000
})
// 请求拦截器
instance.interceptors.request.use(
config => {
const token = localStorage.getItem('token')
if (token) {
// 如果token存在,则在请求头中添加token
config.headers.Authorization = `Bearer ${token}`
}
return config
},
error => {
return Promise.reject(error)
}
)
// 响应拦截器
instance.interceptors.response.use(
response => {
return response
},
error => {
const { response } = error
if (response) {
switch (response.status) {
case 401:
// 如果返回401错误,表示token过期或无效,跳转到登录页
localStorage.removeItem('token')
window.location.href = '/login'
break
// 其他错误处理
default:
// do something
break
}
}
return Promise.reject(error)
}
)
export default instance
```
在请求拦截器中,我们通过localStorage获取token,并在请求头中添加token,这样每次请求都会自动携带token。在响应拦截器中,如果返回401错误,即表示token过期或无效,我们清除localStorage中的token,并跳转到登录页。其他错误可以根据实际情况进行处理。
阅读全文