import { getBrandingSettings, getLoginSettings, getSession, server, } from "#/lib/zitadel"; import Alert from "#/ui/Alert"; import ChooseSecondFactorToSetup from "#/ui/ChooseSecondFactorToSetup"; import DynamicTheme from "#/ui/DynamicTheme"; import UserAvatar from "#/ui/UserAvatar"; import { getMostRecentCookieWithLoginname, getSessionCookieById, } from "#/utils/cookies"; export default async function Page({ searchParams, }: { searchParams: Record; }) { const { loginName, altPassword, authRequestId, organization, sessionId } = searchParams; const sessionFactors = sessionId ? await loadSessionById(sessionId, organization) : await loadSessionByLoginname(loginName, organization); async function loadSessionByLoginname( loginName?: string, organization?: string ) { const recent = await getMostRecentCookieWithLoginname( loginName, organization ); return getSession(server, recent.id, recent.token).then((response) => { if (response?.session) { return response.session; } }); } async function loadSessionById(sessionId: string, organization?: string) { const recent = await getSessionCookieById(sessionId, organization); return getSession(server, recent.id, recent.token).then((response) => { if (response?.session) { return response.session; } }); } const branding = await getBrandingSettings(server, organization); const loginSettings = await getLoginSettings(server, organization); return (

Set up 2-Factor

Choose one of the following second factors.

{sessionFactors && ( )} {!sessionFactors &&
} {!(loginName || sessionId) && ( Provide your active session as loginName param )} {loginSettings ? ( ) : ( No second factors available to setup. )}
); }