• 封装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 }
  • 相关阅读:
    Linux下目录的权限详解
    Linux下mknod详解
    迅雷精简版-无广告
    PotPlayer一款简洁好用的播放器
    Linux 信号signal处理机制
    Kruskal算法求最小生成树
    Prim算法求权数和,POJ(1258)
    Prim算法求最大权,POJ(2485)
    Prim算法
    DP找最优配置,(POJ1018)
  • 原文地址:https://www.cnblogs.com/linsx/p/9292650.html
Copyright © 2020-2023  润新知