From 2c41dc4162446120feae6a09ecf1d07118850f88 Mon Sep 17 00:00:00 2001
From: yangyin <1850366751@qq.com>
Date: 星期四, 29 八月 2024 12:00:12 +0800
Subject: [PATCH] fix: 修改登录的token过期问题

---
 utils/api.js |  192 ++++++++++++++++++++---------------------------
 1 files changed, 82 insertions(+), 110 deletions(-)

diff --git a/utils/api.js b/utils/api.js
index 43f945a..91dd269 100644
--- a/utils/api.js
+++ b/utils/api.js
@@ -4,9 +4,7 @@
 let app = getApp()
 let ACCESS_TOKEN_KEY = 'AccessToken'
 let API = (params) => {
-  
   let tokenInfo = wx.getStorageSync(ACCESS_TOKEN_KEY)
-  
   let currentDateTime = new Date().getTime()
   if (!tokenInfo) {
     wx.reLaunch({
@@ -14,49 +12,35 @@
     })
     return
   }
-
   const token = tokenInfo.Token;
   const refresh_token = tokenInfo.RefreshToken
-
   if (!refresh_token) {
     wx.reLaunch({
       url: '/login/login/index',
     })
     return
   }
-
   //瑙f瀽token
   const jwt_token = decryptJWT(token);
   // 鑾峰彇token澶辨晥鏃堕棿
   const exp_token = getJWTDate(jwt_token.exp).getTime();
   // token澶辨晥鐘舵��
   const isExpireByToken = currentDateTime >= exp_token
-
   //瑙f瀽refreshtoken
   const jwt_refresh_token = decryptJWT(refresh_token);
   // 鑾峰彇refreshToken澶辨晥鏃堕棿
   const exp_refresh_token = getJWTDate(jwt_refresh_token.exp).getTime();
   // refreshToken澶辨晥鐘舵��
   const isExpireByRefreshToken = currentDateTime >= exp_refresh_token
-
-  // console.log(utils.formatTime(new Date()), utils.formatTime(getJWTDate(jwt_token.exp)), utils.formatTime(getJWTDate(jwt_refresh_token.exp)), 22)
-  // console.log(new Date().getTime() > getJWTDate(jwt.exp).getTime(), 22)
-
-
   // 鍒ゆ柇 token鍜宺efreshToken鏄惁閮藉け鏁�,閮藉け鏁堝垯璺宠浆鐧诲綍
   if ((isExpireByToken && isExpireByRefreshToken) && tokenInfo.isNeedToken) {
-    wx.reLaunch({
-      url: '/login/login/index',
-    })
-    return
+    RefreshToken()
   }
-
   // 鍒ゆ柇 token 澶辨晥浣唕efreshToken娌″け鏁�
   if ((!isExpireByToken && isExpireByRefreshToken) && tokenInfo.isNeedToken) {
     tokenInfo.Token = refresh_token
     wx.setStorageSync(ACCESS_TOKEN_KEY, tokenInfo)
   }
-
   let defaultParams = {
     url: '',
     method: "GET",
@@ -68,7 +52,6 @@
     fail: function () {},
     complete: function () {}
   }
-
   let requestParam = Object.assign(defaultParams, params)
   // 鍒ゆ柇鏄惁瑕佹坊鍔爐oken
   if (tokenInfo.isNeedToken == true) {
@@ -81,18 +64,34 @@
     header: requestParam.header,
     success: res => {
       let result = res.data
-      if (result.data != undefined && result.data == 401) {
+      if (result.Data != undefined && result.Data == 401) {
         RefreshToken()
         return
       }
-      if (result.code && result.code != 0) {
-        wx.showToast({
-          title: result.message,
-          icon: 'error',
-          duration: 1500
-        })
-        RefreshToken()
-        return
+      if (result.Code && result.Code != 0) {
+        if (result.Code == -3) {
+          wx.showModal({
+            title: result.Message,
+            complete: (res) => {
+              if (res.cancel) {
+
+              }
+
+              if (res.confirm) {
+
+              }
+            }
+          })
+
+        } else {
+          wx.showToast({
+            title: result.Message,
+            icon: 'error',
+            duration: 1500
+          })
+          RefreshToken()
+          return
+        }
       }
       requestParam.success(res)
     },
@@ -106,92 +105,65 @@
 
 }
 const RefreshToken = () => {
-  wx.reLaunch({
-    url: '/login/login/index',
-  })
-  return
-
   // 鑾峰彇璐︽埛淇℃伅
-  // let accountInfo = JSON.parse(wx.getStorageSync("AccountInfo"))
-
-  // console.log(accountInfo,60)
+  let accountInfo = wx.getStorageSync("AccountInfo")
   // 鑾峰彇鐧诲綍鐨勭敤鎴蜂俊鎭�
-  // let userInfo = wx.getStorageSync("LoginUserInfo");
-  // let sysInfo = app.globalData.sysInfo;
-  // console.log('鎵撳嵃userInfo', userInfo)
-  // let data = {
-  //   SoftType: Constant.SoftType,
-  //   SoftTag: Constant.SoftTag,
-  //   LoginName: accountInfo.LoginName,
-  //   LoginPwd: accountInfo.LoginPwd,
-  //   CorpID: Constant.CorpID,
-  //   WxCode: accountInfo.WxCode,
-  //   UJsCode: accountInfo.UJsCode, //鏄惁灏辨槸jsCode鏈夊緟纭
-  //   UAvatarUrl: userInfo == null ? "" : userInfo.avatarUrl,
-  //   UCity: userInfo == null ? "" : userInfo.city,
-  //   UProvince: userInfo == null ? "" : userInfo.province,
-  //   UNickName: userInfo == null ? "" : userInfo.nickName,
-  //   UGender: userInfo == null ? "" : userInfo.gender + "",
-  //   SBrand: sysInfo.brand,
-  //   SModel: sysInfo.model,
-  //   SPlatform: sysInfo.platform,
-  //   SVersion: sysInfo.version
-  // }
+  let data = {
+    LoginName: accountInfo.phone,
+    LoginPwd: accountInfo.password,
+    Software: Constant.Software
+  }
   // console.log(JSON.stringify(data),110)
-  // wx.request({
-  //   url: Constant.BASE_SERVER_URL + "User/UserLogin/FromCorpWechatApplet@V1.0",
-  //   method: 'POST',
-  //   data: data,
-  //   header: {
-  //     'content-type': 'application/json'
-  //   },
-  //   fail: function (err) { //璇锋眰澶辫触
-  //     wx.showModal({
-  //       content: '缃戠粶淇″彿涓嶅ソ',
-  //       showCancel: false,
-  //       confirmColor: "#39b5de"
-  //     });
-  //   },
-  //   success: function (res) {
-  //     console.log(res, "鏂扮殑token淇℃伅")
-
-  //     var result = res.data;
-  //     // console.log(result);
-  //     if (result.Code != 0) {
-  //       wx.showToast({
-  //         title: 'token鑾峰彇澶辫触锛岃閲嶆柊鐧诲綍',
-  //         icon: "none",
-  //         duration: 2000
-  //       })
-  //       return;
-  //     }
-
-  //     var return_data = result.Data;
-  //     if (return_data.Status != 0) {
-  //       wx.showToast({
-  //         title: 'token鑾峰彇澶辫触锛岃閲嶆柊鐧诲綍',
-  //         icon: "none",
-  //         duration: 2000
-  //       })
-  //       return;
-  //     }
-  //     let Token = return_data.Token
-  //     let isNeedToken = false //鏄惁闇�瑕乀oken 褰揟oken澶辨晥鐨勬椂鍊� 鍒ゆ柇鏄惁璺宠浆鐧诲綍
-  //     if (Token) {
-  //       isNeedToken = true
-  //     }
-  //     let ExpreTime = new Date().getTime() //鑾峰彇褰撳墠鏃堕棿鎴�
-
-  //     wx.setStorageSync('AccessToken', {
-  //       Token: Token,
-  //       ExpreTime: ExpreTime,
-  //       isNeedToken: isNeedToken
-  //     })
-  //     wx.setStorageSync("AccountInfo", JSON.stringify(data))
-  //     // 鑾峰彇鏂扮殑token鍚庨噸鏂拌皟鐢ㄦ帴鍙�
-  //     apiCb(params)
-  //   }
-  // });
+  wx.request({
+    url: Constant.BASE_AUTH_URL + "Auth/User/Login/LoginSoftwareStandardBySystemAccount@V1.0",
+    method: 'POST',
+    data: data,
+    header: {
+      'content-type': 'application/json'
+    },
+    fail: function (err) { //璇锋眰澶辫触
+      wx.showModal({
+        content: '缃戠粶淇″彿涓嶅ソ',
+        showCancel: false,
+        confirmColor: "#39b5de"
+      });
+    },
+    success: function (res) {
+      // console.log(res, "鏂扮殑token淇℃伅")
+      var result = res.data;
+      // console.log(result);
+      if (result.Code != 0) {
+        wx.showToast({
+          title: 'token鑾峰彇澶辫触锛岃閲嶆柊鐧诲綍',
+          icon: "none",
+          duration: 2000
+        })
+        return;
+      }
+      var return_data = result.Data;
+      if (return_data.Status != 0) {
+        wx.showToast({
+          title: 'token鑾峰彇澶辫触锛岃閲嶆柊鐧诲綍',
+          icon: "none",
+          duration: 2000
+        })
+        return;
+      }
+      let Token = return_data.AccessToken
+      let RefreshToken = return_data.RefreshToken
+      let isNeedToken = false //鏄惁闇�瑕乀oken 褰揟oken澶辨晥鐨勬椂鍊� 鍒ゆ柇鏄惁璺宠浆鐧诲綍
+      if (Token) {
+        isNeedToken = true
+      }
+      let ExpreTime = new Date().getTime() //鑾峰彇褰撳墠鏃堕棿鎴�
+      wx.setStorageSync('AccessToken', {
+        Token: Token,
+        RefreshToken: RefreshToken,
+        ExpreTime: ExpreTime,
+        isNeedToken: isNeedToken,
+      })    
+    }
+  })
 }
 
 //瑙e瘑 JWT token 鐨勪俊鎭�

--
Gitblit v1.9.3