request.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import axios from 'axios'
  2. import { getChromeStorage } from '@/uilts/chromeExtension.js'
  3. import { baseAPIUrl, appVersionCode } from '@/http/configAPI.js'
  4. let userInfo = '';
  5. let storage_mid = ''
  6. // 创建axios实例
  7. export const service = axios.create({
  8. baseURL: baseAPIUrl, // api的base_url
  9. timeout: 240000, // 请求超时时间
  10. headers: {
  11. 'Content-Type': 'application/json', //指定消息格式
  12. 'Accept': 'application/json',
  13. },
  14. })
  15. function checkParams(config) {
  16. const { accessToken: token = '', uid = '' } = userInfo || {};
  17. const { mid } = storage_mid || {};
  18. if (config.method === 'get') {
  19. let { baseInfo = null } = config.params || {};
  20. let params = {
  21. ...config.params
  22. }
  23. let { pageSource } = params.params || {};
  24. if (pageSource) {
  25. delete params.params.pageSource;
  26. }
  27. if (!baseInfo || !baseInfo.token) {
  28. params['baseInfo'] = {
  29. token: token,
  30. mid,
  31. appVersionCode,
  32. loginUid: uid,
  33. uid,
  34. appType: 1,
  35. machineCode: mid,
  36. pageSource: pageSource || ''
  37. }
  38. }
  39. config['params'] = params;
  40. }
  41. if (config.method === 'post') {
  42. let { baseInfo = null } = config.data || {};
  43. let data = {
  44. ...config.data
  45. }
  46. let { pageSource } = data.params || {};
  47. if (pageSource) {
  48. delete data.params.pageSource;
  49. }
  50. if (!baseInfo || !baseInfo.token) {
  51. data['baseInfo'] = {
  52. token: token,
  53. mid,
  54. appVersionCode,
  55. loginUid: uid,
  56. uid,
  57. appType: 1,
  58. machineCode: mid,
  59. pageSource: pageSource || ''
  60. }
  61. }
  62. config['data'] = data;
  63. }
  64. return config
  65. }
  66. // request拦截器
  67. service.interceptors.request.use(async (config) => {
  68. userInfo = await getChromeStorage('userInfo') || ''
  69. if (!storage_mid) {
  70. storage_mid = await getChromeStorage('mid') || ''
  71. }
  72. return checkParams(config)
  73. }, error => {
  74. // Do something with request error
  75. console.log(error) // for debug
  76. Promise.reject(error)
  77. })
  78. // respone拦截器
  79. service.interceptors.response.use(
  80. response => {
  81. const res = response.data;
  82. switch (res.code.toString()) {
  83. // twitter授权失效
  84. case '1003':
  85. chrome.storage.local.remove("userInfo");
  86. chrome.runtime.sendMessage(
  87. { actionType: "POPUP_LOGIN", data: "" },
  88. (response) => {
  89. console.log("res", response);
  90. }
  91. )
  92. break;
  93. // 登陆token失效
  94. case '-107':
  95. chrome.storage.local.remove("userInfo");
  96. chrome.runtime.sendMessage(
  97. { actionType: "POPUP_LOGIN", data: "" },
  98. (response) => {
  99. console.log("res", response);
  100. }
  101. )
  102. break;
  103. }
  104. return res
  105. },
  106. error => {
  107. console.log('err' + error) // for debug
  108. return Promise.reject(error)
  109. }
  110. )