fix: guest route
This commit is contained in:
@@ -93,13 +93,16 @@ export const authApi = createApi({
|
|||||||
method: "POST",
|
method: "POST",
|
||||||
body: data
|
body: data
|
||||||
}),
|
}),
|
||||||
|
// extraOptions:{
|
||||||
|
// maxRetries: 3
|
||||||
|
// },
|
||||||
async onQueryStarted(params, { dispatch, queryFulfilled }) {
|
async onQueryStarted(params, { dispatch, queryFulfilled }) {
|
||||||
try {
|
try {
|
||||||
const { data } = await queryFulfilled;
|
const { data } = await queryFulfilled;
|
||||||
dispatch(updateToken(data));
|
dispatch(updateToken(data));
|
||||||
} catch {
|
} catch (error) {
|
||||||
// dispatch(resetAuthData());
|
// 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} />;
|
if (checkingInitialized || !loginConfigSuccess) return <Loading fullscreen={true} />;
|
||||||
// 未初始化 则先走setup 流程
|
// 未初始化 则先走setup 流程
|
||||||
if (!initialized) return <Navigate to={`/onboarding`} replace />;
|
if (!initialized) return <Navigate to={`/onboarding`} replace />;
|
||||||
|
// 开启guest 并且没token 而且是允许guest访问的路由 则先去过渡页登录
|
||||||
if (!token) {
|
if (!token) {
|
||||||
// 记录下当前的路径,登录后跳转回来
|
// 记录下当前的路径,登录后跳转回来
|
||||||
const ignorePath = `/setting/my_account`;
|
const ignorePath = `/setting/my_account`;
|
||||||
@@ -33,10 +34,13 @@ const RequireAuth: FC<Props> = ({ children, redirectTo = "/login" }) => {
|
|||||||
KEY_LOCAL_TRY_PATH,
|
KEY_LOCAL_TRY_PATH,
|
||||||
ignorePath == location.pathname ? "/" : `${location.pathname}${location.search}`
|
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,并且不允许访问
|
// 登陆者是guest,并且不允许访问
|
||||||
if (token && guest && !allowGuest) return <Navigate to={"/"} replace />;
|
if (token && guest && !allowGuest) return <Navigate to={"/"} replace />;
|
||||||
// console.log("authhhhh", allowGuest, token, guest);
|
// console.log("authhhhh", allowGuest, token, guest);
|
||||||
|
|||||||
@@ -102,8 +102,11 @@ export default function useStreaming() {
|
|||||||
if (dayjs().isAfter(new Date(expireTime - 20 * 1000))) {
|
if (dayjs().isAfter(new Date(expireTime - 20 * 1000))) {
|
||||||
const resp = await renewToken({ token, refresh_token: refreshToken });
|
const resp = await renewToken({ token, refresh_token: refreshToken });
|
||||||
if ("error" in resp) {
|
if ("error" in resp) {
|
||||||
// 停止循环
|
// 还有网,而且在当前页,则停止循环
|
||||||
stopStreaming();
|
if (navigator.onLine || !document.hidden) {
|
||||||
|
stopStreaming();
|
||||||
|
}
|
||||||
|
// 返回,开始下次polling(如果有)
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
_token = resp.data.token;
|
_token = resp.data.token;
|
||||||
|
|||||||
Reference in New Issue
Block a user