修复路由鉴权

This commit is contained in:
xmdhs 2023-10-06 01:31:45 +08:00
parent eaf9500907
commit f24cefe002
No known key found for this signature in database
GPG Key ID: E809D6D43DEFCC95
2 changed files with 15 additions and 6 deletions

View File

@ -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}</>
} }

View File

@ -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)