微信小程序賬號密碼登錄獲取token過期刷新token


(代碼是來自自做項目的一部分,可自行更改完成業務)

創建utils.js文件在文件中封裝wx.request方法

// 封裝的微信request方法
function request(url, data = {}, method = "POST", header = "application/x-www-form-urlencoded") {
  wx.showLoading({
    title: '加載中···',
    mask: true
  })
//這里是判斷登錄不需要攜帶token
  if (url != api.BASE_URL + '/api/user/login') {
    header = {
      'Content-Type': header,
      Authorization: `Bearer ${wx.getStorageSync('token')}`
    }
  } else {
    header = {
      'Content-Type': header
    }
  }
  return new Promise(function (resolve, reject) {
    wx.request({
      url: url,
      data: data,
      method: method,
      header: header,
      success: function (res) {
        wx.hideLoading();
        if (res.statusCode == 200) {
          if (res.data.code == 401) {//token過期之后獲取新的token
            getNewToken().then(() => {
              request(url,data,method,header).then(res =>{
                resolve(res)
              })
            })
          } else {
            resolve(res.data);
          }
        }
      },
      fail: function (err) {
        wx.hideLoading();
        reject(err)
      }
    })
  })
}

這個方法為token過期后調用的登錄方法獲取token

function getNewToken() {//token過期之后獲取新的token
  return new Promise((resolve, reject)=>{
    request(api.getUserPhone, {
      username: wx.getStorageSync('username'),
      password: wx.getStorageSync('password'),
    }, "POST").then(res => {
      if (res.code == 200) {
        wx.setStorageSync('token', res.token)
        resolve();
      }
    })
  })
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM