Zhengxiaowei 5 роки тому
батько
коміт
8a605b665f
2 змінених файлів з 14 додано та 8 видалено
  1. 8 5
      src/api/fly.js
  2. 6 3
      src/api/utils.js

+ 8 - 5
src/api/fly.js

@@ -33,15 +33,18 @@ fly.interceptors.request.use(async config => {
 });
 
 fly.interceptors.response.use(
-  res => {
+  async res => {
     if (!res.data.code) {
       return res.data.data;
     } else if (res.data.code === 10023) {
       // token失效
-      clearToken();
-      return getToken().then(token => {
-        return r(res.config);
-      });
+      await clearToken();
+      console.log("begin refresh token");
+      let refresh_token = await getToken();
+      console.log("refresh token:", refresh_token);
+      return fly(res.config);
+      // return getToken().then(token => {
+      // });
     }
     else {
       prompt.showToast({

+ 6 - 3
src/api/utils.js

@@ -13,8 +13,12 @@ let token = null;
 export const getToken = async () => {
   if (getToken.promise) return getToken.promise;
 
+  console.log("token status", token);
+
   if (!token) token = (await storage.get({ key: "token" })).data;
 
+  console.log("123", token);
+
   // token格式化
   if (token && typeof token === "string") token = JSON.parse(token);
 
@@ -23,9 +27,7 @@ export const getToken = async () => {
   if (!token) getToken.promise = login();
   else if (checkToken(token)) return Promise.resolve(token.token);
   else {
-    getToken.promise = refreshToken().catch(e => {
-      return login();
-    });
+    getToken.promise = login();
   }
   getToken.promise = getToken.promise
     .finally(() => {
@@ -110,6 +112,7 @@ const setToken = async t => {
 export const clearToken = async () => {
   token = null;
   await storage.delete({ key: "token" });
+  console.log("clear token done");
 };
 
 // 处理token的格式