封装token

 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 }
原文地址:https://www.cnblogs.com/linsx/p/9292650.html