api.js 2.0 KB

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