diff --git a/src/app/services/auth.ts b/src/app/services/auth.ts index 279f3d14..bc619d61 100644 --- a/src/app/services/auth.ts +++ b/src/app/services/auth.ts @@ -93,13 +93,16 @@ export const authApi = createApi({ method: "POST", body: data }), + // extraOptions:{ + // maxRetries: 3 + // }, async onQueryStarted(params, { dispatch, queryFulfilled }) { try { const { data } = await queryFulfilled; dispatch(updateToken(data)); - } catch { + } catch (error) { // dispatch(resetAuthData()); - console.error("renew token error"); + console.error("renew token error from rtk", error); } } }), diff --git a/src/components/RequireAuth.tsx b/src/components/RequireAuth.tsx index b853ff63..d45ce950 100644 --- a/src/components/RequireAuth.tsx +++ b/src/components/RequireAuth.tsx @@ -26,6 +26,7 @@ const RequireAuth: FC = ({ children, redirectTo = "/login" }) => { if (checkingInitialized || !loginConfigSuccess) return ; // 未初始化 则先走setup 流程 if (!initialized) return ; + // 开启guest 并且没token 而且是允许guest访问的路由 则先去过渡页登录 if (!token) { // 记录下当前的路径,登录后跳转回来 const ignorePath = `/setting/my_account`; @@ -33,10 +34,13 @@ const RequireAuth: FC = ({ children, redirectTo = "/login" }) => { KEY_LOCAL_TRY_PATH, ignorePath == location.pathname ? "/" : `${location.pathname}${location.search}` ); - return ; + const guestLogin = loginConfig?.guest && allowGuest; + return guestLogin ? ( + + ) : ( + + ); } - // 开启guest 并且没token 而且是允许guest访问的路由 则先去过渡页登录 - if (loginConfig?.guest && !token && allowGuest) return ; // 登陆者是guest,并且不允许访问 if (token && guest && !allowGuest) return ; // console.log("authhhhh", allowGuest, token, guest); diff --git a/src/hooks/useStreaming/index.ts b/src/hooks/useStreaming/index.ts index 20d0bf37..631e7dc8 100644 --- a/src/hooks/useStreaming/index.ts +++ b/src/hooks/useStreaming/index.ts @@ -102,8 +102,11 @@ export default function useStreaming() { if (dayjs().isAfter(new Date(expireTime - 20 * 1000))) { const resp = await renewToken({ token, refresh_token: refreshToken }); if ("error" in resp) { - // 停止循环 - stopStreaming(); + // 还有网,而且在当前页,则停止循环 + if (navigator.onLine || !document.hidden) { + stopStreaming(); + } + // 返回,开始下次polling(如果有) return; } else { _token = resp.data.token;