diff --git a/src/app/impersonate/page.tsx b/src/app/impersonate/page.tsx new file mode 100644 index 0000000..03dfd5b --- /dev/null +++ b/src/app/impersonate/page.tsx @@ -0,0 +1,41 @@ +'use client'; + +import { useEffect, Suspense } from 'react'; +import { useRouter, useSearchParams } from 'next/navigation'; + +function ImpersonateHandler() { + const router = useRouter(); + const searchParams = useSearchParams(); + + useEffect(() => { + const token = searchParams.get('token'); + const userStr = searchParams.get('user'); + const tenantStr = searchParams.get('tenant'); + + if (token && userStr && tenantStr) { + localStorage.setItem('accessToken', token); + localStorage.setItem('user', userStr); + localStorage.setItem('tenant', tenantStr); + localStorage.setItem('is_impersonating', 'true'); + router.push('/dashboard'); + } else { + router.push('/login'); + } + }, [router, searchParams]); + + return null; +} + +export default function ImpersonatePage() { + return ( +
+
+
+

Loading impersonation session...

+
+ + + +
+ ); +}