From 6cc9440102749d84fe01da74e1d7e8ddfb8a41df Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sun, 29 Aug 2021 22:06:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E5=A4=8D=E9=80=80?= =?UTF-8?q?=E5=87=BA=E7=99=BB=E5=BD=95=E5=90=8Etoken=E4=B8=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/index.tsx | 2 +- shared/manager/buildRegFn.ts | 1 - shared/manager/request.ts | 2 +- web/src/utils/jwt-helper.ts | 4 +++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/shared/index.tsx b/shared/index.tsx index 8a21c679..a46d7f8c 100644 --- a/shared/index.tsx +++ b/shared/index.tsx @@ -47,7 +47,7 @@ export { useUpdateRef } from './hooks/useUpdateRef'; export { buildRegList } from './manager/buildRegList'; export { buildRegMap } from './manager/buildRegMap'; export { getStorage, setStorage, useStorage } from './manager/storage'; -export { setTokenGetter } from './manager/request'; +export { setTokenGetter, refreshTokenGetter } from './manager/request'; export { setServiceUrl } from './manager/service'; export { showToasts, diff --git a/shared/manager/buildRegFn.ts b/shared/manager/buildRegFn.ts index ad15efcf..a24ab734 100644 --- a/shared/manager/buildRegFn.ts +++ b/shared/manager/buildRegFn.ts @@ -1,6 +1,5 @@ import _isFunction from 'lodash/isFunction'; import _isEqual from 'lodash/isEqual'; -import { isPromise } from '../utils/is-promise'; /** * 构建一对get set 方法 diff --git a/shared/manager/request.ts b/shared/manager/request.ts index 5c20de4c..9c10cda9 100644 --- a/shared/manager/request.ts +++ b/shared/manager/request.ts @@ -5,5 +5,5 @@ export const [getErrorHook, setErrorHook] = buildRegFn<(err: any) => boolean>( () => true ); -export const [tokenGetter, setTokenGetter] = +export const [tokenGetter, setTokenGetter, refreshTokenGetter] = buildCachedRegFnAsync<() => Promise>('requestTokenGetter'); diff --git a/web/src/utils/jwt-helper.ts b/web/src/utils/jwt-helper.ts index 156c481e..8ffca218 100644 --- a/web/src/utils/jwt-helper.ts +++ b/web/src/utils/jwt-helper.ts @@ -1,7 +1,7 @@ import _isObject from 'lodash/isObject'; import _isNull from 'lodash/isNull'; import jwtDecode from 'jwt-decode'; -import { getStorage } from 'tailchat-shared'; +import { getStorage, refreshTokenGetter } from 'tailchat-shared'; /** * 获取完整jwt字符串的载荷信息(尝试解析json) @@ -28,6 +28,7 @@ export async function setUserJWT(jwt: string | null): Promise { _userJWT = jwt; // 更新内存中的缓存 await getStorage().set('jsonwebtoken', jwt); + refreshTokenGetter(); } /** @@ -36,6 +37,7 @@ export async function setUserJWT(jwt: string | null): Promise { export async function getUserJWT(): Promise { if (_isNull(_userJWT)) { const jwt = await getStorage().get('jsonwebtoken'); + _userJWT = jwt; // 将其缓存到内存中 return jwt;