import { Alert } from "@/components/alert"; import { DynamicTheme } from "@/components/dynamic-theme"; import { PasswordForm } from "@/components/password-form"; import { UserAvatar } from "@/components/user-avatar"; import { getServiceUrlFromHeaders } from "@/lib/service"; import { loadMostRecentSession } from "@/lib/session"; import { getBrandingSettings, getDefaultOrg, getLoginSettings, } from "@/lib/zitadel"; import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb"; import { PasskeysType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb"; import { getLocale, getTranslations } from "next-intl/server"; import { headers } from "next/headers"; export default async function Page(props: { searchParams: Promise>; }) { const searchParams = await props.searchParams; const locale = getLocale(); const t = await getTranslations({ locale, namespace: "password" }); const tError = await getTranslations({ locale, namespace: "error" }); let { loginName, organization, requestId, alt } = searchParams; const _headers = await headers(); const { serviceUrl } = getServiceUrlFromHeaders(_headers); let defaultOrganization; if (!organization) { const org: Organization | null = await getDefaultOrg({ serviceUrl, }); if (org) { defaultOrganization = org.id; } } // also allow no session to be found (ignoreUnkownUsername) let sessionFactors; try { sessionFactors = await loadMostRecentSession({ serviceUrl, sessionParams: { loginName, organization, }, }); } catch (error) { // ignore error to continue to show the password form console.warn(error); } const branding = await getBrandingSettings({ serviceUrl, organization: organization ?? defaultOrganization, }); const loginSettings = await getLoginSettings({ serviceUrl, organization: organization ?? defaultOrganization, }); return (

{sessionFactors?.factors?.user?.displayName ?? t("verify.title")}

{t("verify.description")}

{/* show error only if usernames should be shown to be unknown */} {(!sessionFactors || !loginName) && !loginSettings?.ignoreUnknownUsernames && (
{tError("unknownContext")}
)} {sessionFactors && ( )} {loginName && ( )}
); }