|
|
@@ -1,9 +1,9 @@
|
|
|
+import router from '@/router'
|
|
|
import axios from 'axios'
|
|
|
import { Message } from 'element-ui'
|
|
|
-import Cookies from "js-cookie"
|
|
|
+import Cookies from 'js-cookie'
|
|
|
import tool from './tool'
|
|
|
import usersInfo from './usersInfo'
|
|
|
-
|
|
|
// create an axios instance
|
|
|
const service = axios.create({
|
|
|
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
|
|
@@ -28,15 +28,15 @@ service.interceptors.request.use(
|
|
|
// 设置语言
|
|
|
config.headers['language'] = Cookies.get('language')
|
|
|
|
|
|
- if (usersInfo.accessToken() && usersInfo.accessTokenExpiresIn()
|
|
|
- && parseInt(usersInfo.accessTokenExpiresIn()) + parseInt(usersInfo.accessTokenUpdateAt()) - 30 > parseInt(tool.getTimestamp())) {
|
|
|
- } else if(usersInfo.accessToken()) {
|
|
|
+ if (usersInfo.accessToken() && usersInfo.accessTokenExpiresIn() &&
|
|
|
+ parseInt(usersInfo.accessTokenExpiresIn()) + parseInt(usersInfo.accessTokenUpdateAt()) - 30 > parseInt(tool.getTimestamp())) {
|
|
|
+ } else if (usersInfo.accessToken()) {
|
|
|
// 需要先刷新token
|
|
|
- let refreshToken = usersInfo.refreshToken()
|
|
|
- let refreshTokenExpiresIn = usersInfo.refreshTokenExpiresIn()
|
|
|
- let refreshTokenUpdateAt = usersInfo.refreshTokenUpdateAt()
|
|
|
- if (refreshToken && refreshTokenExpiresIn
|
|
|
- && parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
|
|
|
+ const refreshToken = usersInfo.refreshToken()
|
|
|
+ const refreshTokenExpiresIn = usersInfo.refreshTokenExpiresIn()
|
|
|
+ const refreshTokenUpdateAt = usersInfo.refreshTokenUpdateAt()
|
|
|
+ if (refreshToken && refreshTokenExpiresIn &&
|
|
|
+ parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
|
|
|
// 有效,去更新
|
|
|
axios.get(`${process.env.VUE_APP_BASE_API}/v1/oauth/refresh-token?refresh-token=${refreshToken}`).then(response => {
|
|
|
// 更新本地accessToken
|
|
|
@@ -46,8 +46,7 @@ service.interceptors.request.use(
|
|
|
usersInfo.refreshToken(response.data.refreshToken)
|
|
|
usersInfo.refreshTokenExpiresIn(response.data.refreshTokenExpiresIn)
|
|
|
usersInfo.refreshTokenUpdateAt(response.data.refreshTokenUpdateAt)
|
|
|
- usersInfo.accessToken()
|
|
|
-
|
|
|
+ usersInfo.accessToken()
|
|
|
}).catch(error => {
|
|
|
Message({
|
|
|
message: 'accessToken Failed',
|
|
|
@@ -57,7 +56,7 @@ service.interceptors.request.use(
|
|
|
return
|
|
|
})
|
|
|
} else {
|
|
|
- //console.log('refreshToken已失效');
|
|
|
+ // console.log('refreshToken已失效');
|
|
|
usersInfo.clear()
|
|
|
Message({
|
|
|
message: 'refreshToken Invalid',
|
|
|
@@ -72,7 +71,7 @@ service.interceptors.request.use(
|
|
|
},
|
|
|
error => {
|
|
|
// do something with request error
|
|
|
- console.log('请求报错----->',error) // for debug
|
|
|
+ console.log('请求报错----->', error) // for debug
|
|
|
return Promise.reject(error)
|
|
|
}
|
|
|
)
|
|
|
@@ -137,6 +136,13 @@ service.interceptors.response.use(
|
|
|
default:
|
|
|
}
|
|
|
}
|
|
|
+ if (err.response.data.status == 401) {
|
|
|
+ localStorage.clear()
|
|
|
+ router.replace({
|
|
|
+ path: '/login',
|
|
|
+ query: { redirect: router.currentRoute.fullPath }
|
|
|
+ })
|
|
|
+ }
|
|
|
// Message({
|
|
|
// message: err.message || 'Error',
|
|
|
// type: 'error',
|