api.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import {
  2. clientId,
  3. clientSecret,
  4. userType
  5. } from '@/common/setting'
  6. import {
  7. options
  8. } from '@/http/config.js';
  9. import {
  10. Base64
  11. } from '@/utils/base64.js';
  12. import Request from '@/utils/luch-request/index.js';
  13. const http = new Request(options);
  14. http.interceptors.request.use((config) => { // 可使用async await 做异步操作
  15. // 假设有token值需要在头部需要携带
  16. let accessToken = uni.getStorageSync('accessToken');
  17. if (accessToken) {
  18. config.header['Blade-Auth'] = 'bearer ' + accessToken;
  19. }
  20. // 客户端认证参数
  21. config.header['Authorization'] = 'Basic ' + Base64.encode(clientId + ':' + clientSecret);
  22. config.header['User-Type']=userType;
  23. // 额外参数
  24. // config.data = config.data || {};
  25. // config.data.pf = uni.getSystemInfoSync().platform;
  26. // config.data.sys = uni.getSystemInfoSync().system;
  27. // 演示custom 用处
  28. // if (config.custom.auth) {
  29. // config.header.token = 'token'
  30. // }
  31. // if (config.custom.loading) {
  32. // uni.showLoading()
  33. // }
  34. /**
  35. /* 演示
  36. if (!token) { // 如果token不存在,return Promise.reject(config) 会取消本次请求
  37. return Promise.reject(config)
  38. }
  39. **/
  40. return config
  41. }, config => { // 可使用async await 做异步操作
  42. return Promise.reject(config)
  43. })
  44. http.interceptors.response.use((response) => {
  45. // 若有数据返回则通过
  46. if (response.data.access_token || response.data.key) {
  47. return response.data
  48. }
  49. // 服务端返回的状态码不等于200,则reject()
  50. if (response.data.code !== 200) {
  51. return Promise.reject(response);
  52. }
  53. return response.data;
  54. }, (response) => {
  55. /* 对响应错误做点什么 (statusCode !== 200)*/
  56. if (response.data.code == 401) {
  57. // uni.reLaunch({
  58. // url: '/pages/login/login-account'
  59. // })
  60. uni.navigateTo({
  61. url: '/pages/login/login-account'
  62. })
  63. }
  64. else {
  65. uni.showToast({
  66. title: response.data.msg+" code:"+response.data.code,
  67. icon: 'none'
  68. });
  69. }
  70. return Promise.reject(response)
  71. })
  72. export default http;