axios.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import Taro from '@tarojs/taro'
  2. import Axios from 'axios'
  3. import { OPEN_ID_STORAGE_KEY } from '../constant'
  4. import { getUserInfo } from '../utils/auth'
  5. import sign from './sign'
  6. const axiosIns = Axios.create({
  7. siren: false,
  8. })
  9. export const getHeaders = async (config) => {
  10. const userInfo = await getUserInfo()
  11. console.log('userInfo', userInfo)
  12. config.params = config.params || {}
  13. config.headers = config.headers || {}
  14. config.headers['X-Enniu-End'] = 'mp'
  15. if (userInfo.userId && userInfo.token) {
  16. config.headers.userId = `${userInfo.userId}`
  17. config.headers.Authorization = `encrypt ${userInfo.token}`
  18. }
  19. const openId = Taro.getStorageInfoSync(OPEN_ID_STORAGE_KEY)
  20. config.headers.openId = `${openId}`
  21. await sign(config)
  22. console.log(config,1111)
  23. return config
  24. };
  25. axiosIns.interceptors.request.use(async (config) => {
  26. try {
  27. return getHeaders(config)
  28. } catch (e) {
  29. console.log(e)
  30. }
  31. })
  32. axiosIns.interceptors.response.use(
  33. (response) => {
  34. if (response.headers && response.headers.token && response.headers.userId) {
  35. Taro.setStorageSync('hasLogin', '1') // 已经登录过,可以认为微信号跟手机号绑定了,后面可以只授权微信信息登录
  36. Taro.setStorageSync('u51UserId', response.headers.userId)
  37. Taro.setStorageSync('u51UserToken', response.headers.token)
  38. }
  39. return response.data
  40. },
  41. async (err) => {
  42. console.log(err)
  43. const config = err.config
  44. let error = {}
  45. // if (ignoreError((err.config || {}).url)) {
  46. // return Promise.reject(err)
  47. // }
  48. if (err.response && err.response.data) {
  49. error = err.response.data.errors
  50. ? err.response.data.errors[0]
  51. : err.response.data
  52. }
  53. if (error.code === 401) {
  54. // await customCallback()
  55. return Promise.reject(error)
  56. } else if (error.code === 1020 || error.code === 1021) {
  57. return error
  58. } else if (
  59. error &&
  60. error.message &&
  61. error.message.indexOf('timeout') === 0
  62. ) {
  63. if (!config.omitError) {
  64. Taro.showToast({
  65. title: '网络异常',
  66. icon: 'none',
  67. })
  68. }
  69. } else if (error.message) {
  70. if (!config.omitError) {
  71. Taro.showToast({
  72. title: error.message,
  73. icon: 'none',
  74. })
  75. }
  76. } else {
  77. if (!config.omitError) {
  78. Taro.showToast({
  79. title: '出了点问题,暂时加载不出来,请稍后再来吧',
  80. icon: 'none',
  81. })
  82. }
  83. }
  84. return Promise.reject(err)
  85. },
  86. )
  87. export default axiosIns