diff --git a/frontend/src/pages/login/index.tsx b/frontend/src/pages/login/index.tsx index a69b66b..58026b9 100644 --- a/frontend/src/pages/login/index.tsx +++ b/frontend/src/pages/login/index.tsx @@ -21,22 +21,24 @@ export default function Login() { const [loading, setLoading] = useState(true) const [environment, setEnvironment] = useState<'feishu' | 'external' | null>(null) const [showQRCode, setShowQRCode] = useState(false) + const [shouldSkipAutoLogin, setShouldSkipAutoLogin] = useState(false) // 防止重复执行免登 // 检查登录状态 useEffect(() => { - const token = localStorage.getItem('token') const urlParams = new URLSearchParams(window.location.search) const redirect = urlParams.get('redirect') + const authCode = urlParams.get('auth_code') - if (token) { - if (redirect) { - window.location.href = redirect - } else { - navigate('/dashboard') - } + // 如果 URL 中有授权码,直接处理登录 + if (authCode) { + const companyParam = urlParams.get('company') + handleFeishuLogin(authCode, companyParam || undefined) return } + // 不检查本地 token,让后端处理 + // 继续执行环境检测和免登 + // 监听飞书登录成功事件 const handleFeishuLoginSuccess = ((e: any) => { const { user, token } = e.detail