修复路由鉴权
This commit is contained in:
parent
eaf9500907
commit
f24cefe002
@ -57,7 +57,7 @@ export function PageRoute() {
|
|||||||
function NeedLogin({ children, needAdmin = false }: { children: JSX.Element, needAdmin?: boolean }) {
|
function NeedLogin({ children, needAdmin = false }: { children: JSX.Element, needAdmin?: boolean }) {
|
||||||
const t = useAtomValue(token)
|
const t = useAtomValue(token)
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { data, loading } = useRequest(() => userInfo(t), {
|
useRequest(() => userInfo(t), {
|
||||||
refreshDeps: [t],
|
refreshDeps: [t],
|
||||||
cacheKey: "/api/v1/user" + t,
|
cacheKey: "/api/v1/user" + t,
|
||||||
staleTime: 60000,
|
staleTime: 60000,
|
||||||
@ -67,12 +67,21 @@ function NeedLogin({ children, needAdmin = false }: { children: JSX.Element, nee
|
|||||||
}
|
}
|
||||||
console.warn(e)
|
console.warn(e)
|
||||||
},
|
},
|
||||||
|
onSuccess: u => {
|
||||||
|
if (!u) return
|
||||||
|
if (!u.is_admin && needAdmin) {
|
||||||
|
navigate("/login")
|
||||||
|
}
|
||||||
|
if (u.uuid == "") {
|
||||||
|
navigate("/login")
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
if (t == "") {
|
|
||||||
return <Navigate to="/login" />
|
if (!localStorage.getItem("token") || localStorage.getItem("token") == '""') {
|
||||||
}
|
|
||||||
if (!loading && data && needAdmin && !data.is_admin) {
|
|
||||||
return <Navigate to="/login" />
|
return <Navigate to="/login" />
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return <> {children}</>
|
return <> {children}</>
|
||||||
}
|
}
|
@ -90,7 +90,7 @@ const MyToolbar = memo(function MyToolbar() {
|
|||||||
const [nowUser, setNowUser] = useAtom(user)
|
const [nowUser, setNowUser] = useAtom(user)
|
||||||
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [, setToken] = useAtom(token)
|
const setToken = useSetAtom(token)
|
||||||
const setErr = useSetAtom(LayoutAlertErr)
|
const setErr = useSetAtom(LayoutAlertErr)
|
||||||
const setOpen = useSetAtom(DrawerOpen)
|
const setOpen = useSetAtom(DrawerOpen)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user