修复路由鉴权
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 }) {
|
||||
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 <Navigate to="/login" />
|
||||
}
|
||||
if (!loading && data && needAdmin && !data.is_admin) {
|
||||
|
||||
if (!localStorage.getItem("token") || localStorage.getItem("token") == '""') {
|
||||
return <Navigate to="/login" />
|
||||
}
|
||||
|
||||
|
||||
return <> {children}</>
|
||||
}
|
@ -90,7 +90,7 @@ const MyToolbar = memo(function MyToolbar() {
|
||||
const [nowUser, setNowUser] = useAtom(user)
|
||||
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
|
||||
const navigate = useNavigate();
|
||||
const [, setToken] = useAtom(token)
|
||||
const setToken = useSetAtom(token)
|
||||
const setErr = useSetAtom(LayoutAlertErr)
|
||||
const setOpen = useSetAtom(DrawerOpen)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user