import { ExternalLink, LogIn, ShieldHalf } from "lucide-react"; import { useEffect, useRef } from "react"; import { useAuth } from "react-oidc-context"; import { useNavigate } from "react-router-dom"; import { useSearchParams } from "react-router-dom"; import { Button } from "../../components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "../../components/ui/card"; function LoginPage() { const auth = useAuth(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const autoStartedRef = useRef(false); const returnTo = searchParams.get("returnTo") || "/chart"; const shouldAutoLogin = searchParams.get("auto") !== "0"; useEffect(() => { if (auth.isAuthenticated) { navigate(returnTo, { replace: true }); } }, [auth.isAuthenticated, navigate, returnTo]); useEffect(() => { if (!shouldAutoLogin) { return; } if (autoStartedRef.current || auth.isLoading || auth.activeNavigator) { return; } autoStartedRef.current = true; void auth.signinRedirect({ state: { returnTo, }, }); }, [auth, auth.activeNavigator, auth.isLoading, returnTo, shouldAutoLogin]); const handleSSOLogin = async () => { try { await auth.signinRedirect({ state: { returnTo: "/chart", }, }); } catch (error) { console.error("Redirect login failed", error); } }; return (

Baron SSO

Developer Control Plane

개발자 포털 로그인 Baron 통합 인증(SSO)을 통해 개발자 포털에 접속합니다.

개발자 포털 세션은 브라우저 정책에 따라 유지됩니다.
민감한 작업 시 재인증을 요구할 수 있습니다.

인증 정보가 없거나 로그인이 되지 않는 경우
시스템 관리자에게 문의하세요.

); } export default LoginPage;