api.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import {
  2. clientId,
  3. clientSecret
  4. } from '@/common/setting'
  5. import {
  6. options
  7. } from '@/http/config.js';
  8. import {
  9. Base64
  10. } from '@/utils/base64.js';
  11. // wx.cloud.init({
  12. // resourceAppid: 'wxade26aebf348223e', // 环境所属的账号appid
  13. // resourceEnv: 'prod-4gkkrcvs42a25d6a', // 微信云托管的环境ID
  14. // env: 'prod-4gkkrcvs42a25d6a',
  15. // })
  16. import Request from '@/utils/luch-request/index.js';
  17. const http = new Request(options);
  18. http.interceptors.request.use((config) => { // 可使用async await 做异步操作
  19. // 假设有token值需要在头部需要携带
  20. let accessToken = uni.getStorageSync('accessToken');
  21. if (accessToken) {
  22. config.header['Blade-Auth'] = 'bearer ' + accessToken;
  23. }
  24. // 客户端认证参数
  25. config.header['Authorization'] = 'Basic ' + Base64.encode(clientId + ':' + clientSecret);
  26. // #ifndef H5
  27. let url = config.url
  28. if (process.env.NODE_ENV == 'development' && !url.startsWith("http")) {
  29. url = url.substring(url.indexOf('/api') + 4)
  30. config.url = url
  31. }
  32. // #endif
  33. // 额外参数
  34. // config.data = config.data || {};
  35. // config.data.pf = uni.getSystemInfoSync().platform;
  36. // config.data.sys = uni.getSystemInfoSync().system;
  37. // 演示custom 用处
  38. // if (config.custom.auth) {
  39. // config.header.token = 'token'
  40. // }
  41. // if (config.custom.loading) {
  42. // uni.showLoading()
  43. // }
  44. /**
  45. /* 演示
  46. if (!token) { // 如果token不存在,return Promise.reject(config) 会取消本次请求
  47. return Promise.reject(config)
  48. }
  49. **/
  50. return config
  51. }, config => { // 可使用async await 做异步操作
  52. return Promise.reject(config)
  53. })
  54. http.interceptors.response.use((response) => {
  55. // 若有数据返回则通过
  56. if (response.data.access_token || response.data.key) {
  57. return response.data
  58. }
  59. // 服务端返回的状态码不等于200,则reject()
  60. if (response.data.code !== 200) {
  61. uni.showToast({
  62. title: response.data.msg,
  63. icon: 'none'
  64. });
  65. //return Promise.reject(response);
  66. }
  67. if(response.data.code== 100){
  68. return response.data;
  69. }
  70. if(response.data.code== 101){
  71. return response.data;
  72. }
  73. if(response.data.code== 401){
  74. return response.data;
  75. }
  76. if(response.data.code== 102){
  77. return response.data;
  78. }
  79. return response.data;
  80. }, (response) => {
  81. /* 对响应错误做点什么 (statusCode !== 200)*/
  82. uni.showToast({
  83. title: response.data.msg,
  84. icon: 'none'
  85. });
  86. if (response.statusCode == 401) {
  87. const pages = getCurrentPages()
  88. const currentPage = pages[pages.length - 1]
  89. uni.redirectTo({
  90. url: `/pageA/my/login?redirect=/${currentPage.route}`
  91. })
  92. }
  93. return Promise.reject(response)
  94. })
  95. export default http;