import { Layout, Menu, theme } from 'antd';
import { useState } from 'react';
import { Navigate, Route, Routes, useLocation, useNavigate } from 'react-router-dom';
import Login from './pages/Login';
import SSOLogin from './pages/SSOLogin';
import Services from './pages/Services';
import Stats from './pages/Stats';
import Tokens from './pages/Tokens';
import { clearSession, getUserInfo } from './services/iamAuth';
const { Header, Content, Sider } = Layout;
/** 登录守卫:sessionStorage 无 userToken 则跳登录页(携带来源路径,登录后回跳) */
function RequireAuth({ children }: { children: React.ReactNode }) {
const location = useLocation();
const token = sessionStorage.getItem('userToken');
if (!token) {
return ;
}
return <>{children}>;
}
function AppLayout() {
const nav = useNavigate();
const loc = useLocation();
const [collapsed, setCollapsed] = useState(false);
const {
token: { colorBgContainer },
} = theme.useToken();
const userInfo = getUserInfo();
const displayName = userInfo?.userName || userInfo?.userId || '';
return (
MCP Auth
} />
} />
} />
} />
);
}
export default function App() {
// 路由变化时重渲染,重读 sessionStorage 登录态
useLocation();
return (
} />
} />
} />
);
}