request.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import service from './newRequest.js'
  2. import store from '../store';
  3. import w_md5 from "../libs/zww-md5/w_md5.js"
  4. import {
  5. randomString
  6. } from '../utils/rocessor.js';
  7. import {
  8. saveUrl,
  9. interceptor
  10. } from '@/utils/loginUtils.js';
  11. // 请求完成后拦截
  12. service.interceptors.response(
  13. response => {
  14. // console.log(response,'response')
  15. try {
  16. let res = response.data;
  17. // 解析字符串为数字
  18. if (res.status !== 200 && res.status) {
  19. console.log(res.status);
  20. if (res.status == 4123456) {
  21. uni.showModal({
  22. title: "错误",
  23. content: res.msg,
  24. showCancel: false,
  25. success: (e) => {
  26. uni.navigateTo({
  27. url: "/pages/collection/collection"
  28. })
  29. }
  30. })
  31. } else if (res.status == 410000) {
  32. // 调用退出登录方法清空用户信息
  33. store.commit('user/logout');
  34. // 判断是否开启强制登录
  35. uni.showModal({
  36. title: "登陆",
  37. content: '您未登录!是否马上登录?',
  38. success: (e) => {
  39. // 判断是否点击确认按钮
  40. if (e.confirm) {
  41. // 保存当前页面地址
  42. saveUrl()
  43. // 跳转页面
  44. interceptor()
  45. }
  46. }
  47. })
  48. } else {
  49. if (res.msg != '系统出现异常' && res.msg != '不需要验证码') {
  50. uni.showToast({
  51. title: res.msg,
  52. duration: 1500,
  53. mask: false,
  54. icon: 'none',
  55. })
  56. }
  57. }
  58. return Promise.reject(res)
  59. } else {
  60. return res
  61. }
  62. } catch (e) {
  63. console.log(e);
  64. }
  65. },
  66. error => {
  67. console.log(error,'error')
  68. uni.showToast({
  69. title: "加载错误请重试",
  70. duration: 1500,
  71. mask: false,
  72. icon: 'none',
  73. })
  74. return Promise.reject(error)
  75. }
  76. )
  77. // 请求前拦截器
  78. service.interceptors.request(
  79. config => {
  80. // 允许请求接口
  81. let openArList = [
  82. "/api/login",
  83. "/api/register/verify",
  84. "/api/register",
  85. "/api/login/mobile",
  86. '/api/wechat/config',
  87. "/api/wechat/auth",
  88. "/api/register/reset",
  89. "/api/sms_captcha",
  90. "/api/verify_code"
  91. ]
  92. let openLogin = openArList.findIndex((el)=>el==config.url);
  93. console.log(openLogin)
  94. if(!store.state.user.hasLogin&&openLogin==-1){
  95. console.log('登录')
  96. // 保存当前页面地址
  97. // saveUrl()
  98. // 跳转页面
  99. interceptor()
  100. return false;
  101. }
  102. let token = uni.getStorageSync('token') || '';
  103. let {
  104. AUTH_TOKEN,
  105. Timestamp
  106. } = store.state.md5;
  107. let NONCE = randomString(12);
  108. let URL = store.state.baseURL + config.url;
  109. // let URL = "http://cbbtest.qiniu1314.com" + config.url;
  110. // console.log(URL)
  111. // console.log(AUTH_TOKEN)
  112. let MD5 = w_md5.hex_md5_32(Timestamp + NONCE + AUTH_TOKEN + URL);
  113. let tokenMD5 =`${Timestamp}|${NONCE}|${MD5}`;
  114. // console.log(tokenMD5)
  115. if (!config.header) {
  116. config.header = {
  117. "Authori-zation": 'Bearer ' + token,
  118. "X-YD-Req-Token": tokenMD5,
  119. "Access-Control-Max-Age":-1
  120. }
  121. } else {
  122. // 添加key请求头
  123. config.header["Authori-zation"] = 'Bearer ' + token;
  124. config.header["X-YD-Req-Token"] = tokenMD5;
  125. config.header["Access-Control-Max-Age"] = 1;
  126. }
  127. return config
  128. },
  129. error => {
  130. // 错误处理
  131. console.log(error)
  132. return Promise.reject(error)
  133. }
  134. )
  135. let upFilse = service.upFilse;
  136. export {
  137. upFilse
  138. };
  139. export default service.open;