| | |
| | | hasTokens() { |
| | | return !!(this.getAccessToken() && this.getRefreshToken()); |
| | | }, |
| | | reLogin() { |
| | | const currentPath = router.currentRoute._value.path |
| | | if (currentPath.includes('/h5/')) { |
| | | router.push({ path: '/h5/login', query: router.currentRoute._value.query }) |
| | | } |
| | | } |
| | | } |
| | | let isRefreshing = false; |
| | | // 刷新 token 期间的请求队列 |
| | |
| | | return response |
| | | } |
| | | if (response.data && resultCode == '401') { |
| | | let filterUrlList = ['/system/wx/js/signature'] |
| | | if (filterUrlList.includes(response.config.url)){ return } |
| | | |
| | | if (!originalRequest._retry && tokenUtils.getRefreshToken) { |
| | | originalRequest._retry = true; |
| | | |
| | |
| | | originalRequest.headers.Authorization = newAccessToken; |
| | | return createAxios(originalRequest) |
| | | } catch (refreshError) { |
| | | console.log(refreshError) |
| | | // 刷新失败,处理队列中的请求 |
| | | refreshQueue.forEach(({ reject }) => { |
| | | reject(refreshError); |
| | | }); |
| | | refreshQueue = []; |
| | | tokenUtils.clearTokens(); |
| | | if (router.currentRoute._value.path.includes('/h5/')) { |
| | | router.push({ path: '/h5/login', query: router.currentRoute._value.query }) |
| | | } |
| | | tokenUtils.reLogin() |
| | | } finally { |
| | | isRefreshing = false; |
| | | } |
| | | } else { |
| | | tokenUtils.clearTokens(); |
| | | if (router.currentRoute._value.path.includes('/h5/')) { |
| | | router.push({ path: '/h5/login', query: router.currentRoute._value.query }) |
| | | tokenUtils.reLogin() |
| | | } |
| | | } |
| | | } |
| | | |
| | | console.log(`url-${response.config.flag} `, response.config.url, response.data) |
| | | return response |
| | | }, |