@tmsfe/tms-core 0.0.218 → 0.0.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/request.js +12 -5
- package/src/runtime/login.ts +2 -0
package/package.json
CHANGED
package/src/request.js
CHANGED
|
@@ -673,16 +673,23 @@ async function loginRefresh() {
|
|
|
673
673
|
if (!refreshPromise) {
|
|
674
674
|
// 调用runtime的login方法刷新token
|
|
675
675
|
const { tms } = getApp();
|
|
676
|
-
wx.tmsLoginPromise = undefined;
|
|
677
676
|
// 刷新登录态时清除缓存,确保重新走登录流程
|
|
678
677
|
storage.removeItem('sinanCacheUserInfo');
|
|
678
|
+
wx.tmsLoginPromise = undefined;
|
|
679
679
|
try {
|
|
680
680
|
refreshPromise = tms.login();
|
|
681
681
|
const loginInfo = await refreshPromise;
|
|
682
|
-
//
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
682
|
+
// 防止脏数据写入缓存:校验 token 有效性
|
|
683
|
+
if (loginInfo?.token && !loginInfo.token.includes('login-fail')) {
|
|
684
|
+
storage.setItem('sinanCacheUserInfo', loginInfo);
|
|
685
|
+
// 显式更新为已resolve的Promise,确保后续请求立即获得最新鉴权信息
|
|
686
|
+
wx.tmsLoginPromise = Promise.resolve(loginInfo);
|
|
687
|
+
lastRefreshTime = Date.now(); // 记录最后成功刷新时间
|
|
688
|
+
} else {
|
|
689
|
+
// token 无效,清除可能存在的脏缓存
|
|
690
|
+
storage.removeItem('sinanCacheUserInfo');
|
|
691
|
+
}
|
|
692
|
+
// 登录完成,清除Promise
|
|
686
693
|
refreshPromise = undefined;
|
|
687
694
|
} catch (err) {
|
|
688
695
|
// 登录失败重试
|