fix: portal端token过期后自动跳转登录页,避免显示空数据
- portalAxios 401 响应拦截器:清除 token 并跳转 /portal/login - PortalLayoutWrapper:检查 token 是否存在,不存在则跳转登录页 - 排除 /portal/login 和 /portal/auto-login 页面避免重复跳转 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -19,6 +19,7 @@ const ForgotPassword = lazyRetry(() => import('./pages/auth/ForgotPassword'))
|
||||
const Dashboard = lazyRetry(() => import('./pages/Dashboard'))
|
||||
const Money = lazyRetry(() => import('./pages/Money'))
|
||||
const SocialInsurance = lazyRetry(() => import('./pages/SocialInsurance'))
|
||||
const Overtime = lazyRetry(() => import('./pages/Overtime'))
|
||||
const Roster = lazyRetry(() => import('./pages/Roster'))
|
||||
const OrgChart = lazyRetry(() => import('./pages/OrgChart'))
|
||||
const SupportDashboard = lazyRetry(() => import('./pages/support/SupportDashboard'))
|
||||
@@ -141,6 +142,12 @@ function PlatformLayout({ children }: { children: React.ReactNode }) {
|
||||
}
|
||||
|
||||
function PortalLayoutWrapper({ children, showNav = true }: { children: React.ReactNode; showNav?: boolean }) {
|
||||
// 检查 portal token 是否存在,不存在则跳转登录页
|
||||
const portalToken = localStorage.getItem('portalToken')
|
||||
if (!portalToken) {
|
||||
window.location.href = '/portal/login'
|
||||
return null
|
||||
}
|
||||
if (!showNav) {
|
||||
return (
|
||||
<div className="min-h-screen bg-surface pt-safe pb-safe">
|
||||
@@ -192,6 +199,7 @@ export default function App() {
|
||||
<Route path="/support" element={<ProtectedRoute><AdminLayout><SupportDashboard /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/money" element={<ProtectedRoute><AdminLayout><Money /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/social" element={<ProtectedRoute><AdminLayout><SocialInsurance /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/overtime" element={<ProtectedRoute><AdminLayout><Overtime /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/termination" element={<ProtectedRoute><AdminLayout><Termination /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/ai-assistant" element={<ProtectedRoute><AdminLayout><AIAssistant /></AdminLayout></ProtectedRoute>} />
|
||||
<Route path="/settings" element={<ProtectedRoute><AdminLayout><Settings /></AdminLayout></ProtectedRoute>} />
|
||||
|
||||
Reference in New Issue
Block a user