1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import errorCode from '@/utils/request/errorCode'
- import { refreshToken } from '@/api/auth'
- const ignoreMsgs = [
- '无效的刷新令牌',
- '刷新令牌已过期'
- ]
- let requestList = []
- let isRefreshToken = false
- module.exports = vm => {
- uni.$u.http.interceptors.response.use(
- async res => {
- const code = res.data.code || 0
- const msg = res.data.msg || errorCode[code] || errorCode['default']
- if (ignoreMsgs.indexOf(msg) !== -1) {
-
- return Promise.reject(msg)
- } else if (code === 401) {
-
- if (!isRefreshToken) {
- isRefreshToken = true
-
- if (!vm.$store.getters.refreshToken) {
- vm.$store.commit('CLEAR_LOGIN_INFO')
- return Promise.reject(res)
- }
-
- try {
- const refreshTokenRes = await refreshToken()
-
- vm.$store.commit('SET_TOKEN', refreshTokenRes.data)
- requestList.forEach(cb => cb())
- return uni.$u.http.request(res.config)
- } catch (e) {
-
-
- requestList.forEach(cb => cb())
-
- vm.$store.commit('CLEAR_LOGIN_INFO')
- return Promise.reject(res)
- } finally {
- requestList = []
- isRefreshToken = false
- }
- } else {
-
- return new Promise(resolve => {
- requestList.push(() => {
- res.config.header.Authorization = 'Bearer ' + vm.$store.getters.accessToken
- resolve(uni.$u.http.request(res.config))
- })
- })
- }
- } else if (code === 500) {
- uni.$u.toast(msg)
- return Promise.reject(res)
- } else if (code === 901) {
- uni.$u.toast('演示模式,无法进行写操作')
- return Promise.reject(res)
- } else if (code !== 0) {
- if (msg === '无效的刷新令牌') {
-
- console.log(msg)
- } else {
- uni.$u.toast(msg)
- }
- return Promise.reject(res)
- } else {
- return res.data
- }
- },
- err => {
- console.log(err)
- let { message } = err
- if (!message) {
- message = '系统发生未知错误'
- }else if (message === 'Network Error') {
- message = '后端接口连接异常'
- } else if (message.includes('timeout')) {
- message = '系统接口请求超时'
- } else if (message.includes('Request failed with status code')) {
- message = '系统接口' + message.substring(message.length - 3) + '异常'
- }
- uni.$u.toast(message)
- return Promise.reject(err)
- }
- )
- }
|