fix: guest route
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}),
|
||||
|
||||
@@ -26,6 +26,7 @@ const RequireAuth: FC<Props> = ({ children, redirectTo = "/login" }) => {
|
||||
if (checkingInitialized || !loginConfigSuccess) return <Loading fullscreen={true} />;
|
||||
// 未初始化 则先走setup 流程
|
||||
if (!initialized) return <Navigate to={`/onboarding`} replace />;
|
||||
// 开启guest 并且没token 而且是允许guest访问的路由 则先去过渡页登录
|
||||
if (!token) {
|
||||
// 记录下当前的路径,登录后跳转回来
|
||||
const ignorePath = `/setting/my_account`;
|
||||
@@ -33,10 +34,13 @@ const RequireAuth: FC<Props> = ({ children, redirectTo = "/login" }) => {
|
||||
KEY_LOCAL_TRY_PATH,
|
||||
ignorePath == location.pathname ? "/" : `${location.pathname}${location.search}`
|
||||
);
|
||||
return <Navigate to={redirectTo} replace />;
|
||||
const guestLogin = loginConfig?.guest && allowGuest;
|
||||
return guestLogin ? (
|
||||
<Navigate to={"/guest_login"} replace />
|
||||
) : (
|
||||
<Navigate to={redirectTo} replace />
|
||||
);
|
||||
}
|
||||
// 开启guest 并且没token 而且是允许guest访问的路由 则先去过渡页登录
|
||||
if (loginConfig?.guest && !token && allowGuest) return <Navigate to={"/guest_login"} replace />;
|
||||
// 登陆者是guest,并且不允许访问
|
||||
if (token && guest && !allowGuest) return <Navigate to={"/"} replace />;
|
||||
// console.log("authhhhh", allowGuest, token, guest);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user