Files
zitadel/apps/login/app/(login)/password/page.tsx

49 lines
1.5 KiB
TypeScript
Raw Normal View History

import { getSession, server } from "#/lib/zitadel";
2023-05-22 16:28:47 +02:00
import Alert from "#/ui/Alert";
import PasswordForm from "#/ui/PasswordForm";
2023-04-19 10:37:35 +02:00
import UserAvatar from "#/ui/UserAvatar";
import { getMostRecentCookieWithLoginname } from "#/utils/cookies";
2023-04-03 13:39:51 +02:00
export default async function Page({ searchParams }: { searchParams: any }) {
const { loginName } = searchParams;
const sessionFactors = await loadSession(loginName);
2023-04-03 13:39:51 +02:00
2023-05-22 16:28:47 +02:00
async function loadSession(loginName: string) {
try {
const recent = await getMostRecentCookieWithLoginname(loginName);
return getSession(server, recent.id, recent.token).then(({ session }) => {
return session;
});
} catch (error) {
console.log(error);
}
}
2023-04-03 13:39:51 +02:00
return (
<div className="flex flex-col items-center space-y-4">
2023-05-22 16:28:47 +02:00
<h1>{sessionFactors?.factors?.user?.displayName ?? "Password"}</h1>
2023-04-03 13:39:51 +02:00
<p className="ztdl-p mb-6 block">Enter your password.</p>
2023-05-22 16:28:47 +02:00
{!sessionFactors && (
<div className="py-4">
<Alert>
Could not get the context of the user. Make sure to enter the
username first or provide a loginName as searchParam.
</Alert>
</div>
)}
{sessionFactors && (
<UserAvatar
loginName={loginName ?? sessionFactors.factors?.user?.loginName}
displayName={sessionFactors.factors?.user?.displayName}
showDropdown
></UserAvatar>
)}
2023-05-22 16:28:47 +02:00
<PasswordForm loginName={loginName} />
2023-04-03 13:39:51 +02:00
</div>
);
}