responseInterceptors.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * 响应拦截
  3. * @param {Object} http
  4. */
  5. import Cache from '../cache'
  6. import { removeToken, setToken } from '../auth'
  7. module.exports = vm => {
  8. uni.$u.http.interceptors.response.use(
  9. response => {
  10. const data = response.data
  11. // 刷新token
  12. const authorization = response.headers?.authorization
  13. if (authorization) {
  14. setToken(authorization)
  15. }
  16. if (data.code !== 0) {
  17. uni.showModal({
  18. title: '提示',
  19. content: data.msg,
  20. showCancel: false
  21. })
  22. return Promise.reject(data.msg)
  23. }
  24. return data
  25. }, (error) => {
  26. // 401 登录超时 402 需要登录
  27. if (typeof error.data.status_code !== 'undefined') {
  28. if (error.data.status_code === 401 || error.data.status_code === 402) {
  29. if (!Cache.get('isLogin')) {
  30. removeToken()
  31. uni.reLaunch({
  32. url: '/pages/login'
  33. })
  34. }
  35. return Promise.resolve()
  36. }
  37. }
  38. uni.showModal({
  39. title: '提示',
  40. content: error.data.message,
  41. showCancel: false
  42. })
  43. return Promise.reject(error)
  44. })
  45. }