diff --git a/frontend/src/Route.tsx b/frontend/src/Route.tsx
index 3639f45..7538ba1 100644
--- a/frontend/src/Route.tsx
+++ b/frontend/src/Route.tsx
@@ -57,7 +57,7 @@ export function PageRoute() {
function NeedLogin({ children, needAdmin = false }: { children: JSX.Element, needAdmin?: boolean }) {
const t = useAtomValue(token)
const navigate = useNavigate();
- const { data, loading } = useRequest(() => userInfo(t), {
+ useRequest(() => userInfo(t), {
refreshDeps: [t],
cacheKey: "/api/v1/user" + t,
staleTime: 60000,
@@ -67,12 +67,21 @@ function NeedLogin({ children, needAdmin = false }: { children: JSX.Element, nee
}
console.warn(e)
},
+ onSuccess: u => {
+ if (!u) return
+ if (!u.is_admin && needAdmin) {
+ navigate("/login")
+ }
+ if (u.uuid == "") {
+ navigate("/login")
+ }
+ }
})
- if (t == "") {
- return
- }
- if (!loading && data && needAdmin && !data.is_admin) {
+
+ if (!localStorage.getItem("token") || localStorage.getItem("token") == '""') {
return
}
+
+
return <> {children}>
}
\ No newline at end of file
diff --git a/frontend/src/views/Layout.tsx b/frontend/src/views/Layout.tsx
index 47250ea..37e3ce7 100644
--- a/frontend/src/views/Layout.tsx
+++ b/frontend/src/views/Layout.tsx
@@ -90,7 +90,7 @@ const MyToolbar = memo(function MyToolbar() {
const [nowUser, setNowUser] = useAtom(user)
const [anchorEl, setAnchorEl] = React.useState(null);
const navigate = useNavigate();
- const [, setToken] = useAtom(token)
+ const setToken = useSetAtom(token)
const setErr = useSetAtom(LayoutAlertErr)
const setOpen = useSetAtom(DrawerOpen)