1 let baseApiUrl = 'xxxx'
2 var app = getApp();
3
4 let defaultHeaders = {
5 'Content-Type': 'application/json'
6 }
7 function request(url, data, method, header={}) {
8 return new Promise(function (reslove, reject) {
9 wx.request({
10 url: baseApiUrl + url,
11 data: data,
12 method: method,
13 header: Object.assign(defaultHeaders, header,{
14 token: wx.getStorageSync('_user_token')
15 }),
16 success: function (res) {
17 if (res.statusCode != 200) {
18 reject(res);
19 return
20 } else if (res.data.code == 10020001){
21 console.log('invalida token.')
22 refreshToken().then(resp=>{
23 console.log('request aggin...')
24 request(url, data, method, header).then((resp) => {
25 reslove(resp)
26 })
27 })
28 return
29 }
30 reslove(res);
31 },
32 fail: function (res) {
33 reject(res);
34 },
35 complete: function (res) {
36 }
37 })
38 })
39 }
40
41 function refreshToken(){
42 return new Promise((resolve, reject) => {
43 wx.login({
44 success(res) {
45 console.log(res)
46 request('/login/index/index', {
47 code: res.code
48 }).then(res => {
49 var _user_token = res.data.data.token
50 var _user_openid = res.data.data.openid
51 var _user_unionId = res.data.data.unionid
52 var token_time = Date.parse(new Date()) + 23 * 60 * 60 * 60
53 wx.setStorageSync('_user_token', _user_token);
54 wx.setStorageSync('token_time', token_time);
55 wx.setStorageSync('_user_openid', _user_openid);
56 wx.setStorageSync('_user_unionId', _user_unionId);
57 defaultHeaders.token = res.data.token
58 resolve(res.data)
59 })
60 },
61 fail(res) {
62 reject()
63 }
64 })
65 })
66 }
67
68 module.exports = {
69 refreshToken: refreshToken,
70 request: request
71 }