diff --git a/apps/login/app/(login)/loginname/[loginname]/page.tsx b/apps/login/app/(login)/loginname/[loginname]/page.tsx
new file mode 100644
index 00000000000..406a05b975e
--- /dev/null
+++ b/apps/login/app/(login)/loginname/[loginname]/page.tsx
@@ -0,0 +1,19 @@
+import { getLoginSettings, server } from "#/lib/zitadel";
+import UsernameForm from "#/ui/UsernameForm";
+
+export default async function Page({
+ params,
+}: {
+ params: { loginname: string };
+}) {
+ const login = await getLoginSettings(server);
+
+ return (
+
+
Welcome back!
+
Enter your login data.
+
+
+
+ );
+}
diff --git a/apps/login/app/(login)/username/page.tsx b/apps/login/app/(login)/loginname/page.tsx
similarity index 100%
rename from apps/login/app/(login)/username/page.tsx
rename to apps/login/app/(login)/loginname/page.tsx
diff --git a/apps/login/app/methods/route.ts b/apps/login/app/methods/route.ts
index 68a73b45acd..a1feabdddd0 100644
--- a/apps/login/app/methods/route.ts
+++ b/apps/login/app/methods/route.ts
@@ -54,8 +54,9 @@ export async function POST(request: NextRequest) {
const createdSession = await createSession(
server,
loginName,
+ domain,
undefined,
- domain
+ undefined
);
if (createdSession) {
diff --git a/apps/login/app/session/route.ts b/apps/login/app/session/route.ts
index f27d80660de..f8804b19a53 100644
--- a/apps/login/app/session/route.ts
+++ b/apps/login/app/session/route.ts
@@ -25,8 +25,9 @@ export async function POST(request: NextRequest) {
const createdSession = await createSession(
server,
loginName,
+ domain,
password,
- domain
+ undefined
);
if (createdSession) {
diff --git a/apps/login/lib/zitadel.ts b/apps/login/lib/zitadel.ts
index 10ad3b1fc96..f9af1a11af3 100644
--- a/apps/login/lib/zitadel.ts
+++ b/apps/login/lib/zitadel.ts
@@ -21,6 +21,7 @@ import {
SetSessionResponse,
DeleteSessionResponse,
VerifyPasskeyRegistrationResponse,
+ ChallengeKind,
} from "@zitadel/server";
export const zitadelConfig: ZitadelServerOptions = {
@@ -45,6 +46,15 @@ export async function getBrandingSettings(
.then((resp: GetBrandingSettingsResponse) => resp.settings);
}
+export async function getLoginSettings(
+ server: ZitadelServer
+): Promise
{
+ const settingsService = settings.getSettings(server);
+ return settingsService
+ .getLoginSettings({}, {})
+ .then((resp: GetLoginSettingsResponse) => resp.settings);
+}
+
export async function getGeneralSettings(
server: ZitadelServer
): Promise {
@@ -78,13 +88,18 @@ export async function getPasswordComplexitySettings(
export async function createSession(
server: ZitadelServer,
loginName: string,
+ domain: string,
password: string | undefined,
- domain: string
+ challenges: ChallengeKind[] | undefined
): Promise {
const sessionService = session.getSession(server);
return password
? sessionService.createSession(
- { checks: { user: { loginName }, password: { password } }, domain },
+ {
+ checks: { user: { loginName }, password: { password } },
+ challenges,
+ domain,
+ },
{}
)
: sessionService.createSession({ checks: { user: { loginName } } }, {});
diff --git a/apps/login/ui/VerifyEmailForm.tsx b/apps/login/ui/VerifyEmailForm.tsx
index 219339a249e..de4ded3d9d0 100644
--- a/apps/login/ui/VerifyEmailForm.tsx
+++ b/apps/login/ui/VerifyEmailForm.tsx
@@ -87,7 +87,7 @@ export default function VerifyEmailForm({ userId, code, submit }: Props) {
function submitCodeAndContinue(value: Inputs): Promise {
return submitCode(value).then((resp: any) => {
- return router.push(`/username`);
+ return router.push(`/loginname`);
});
}
diff --git a/packages/zitadel-server/src/index.ts b/packages/zitadel-server/src/index.ts
index 8a997393c35..775d4b65cbd 100644
--- a/packages/zitadel-server/src/index.ts
+++ b/packages/zitadel-server/src/index.ts
@@ -12,6 +12,8 @@ export {
Theme,
} from "./proto/server/zitadel/settings/v2alpha/branding_settings";
+export { ChallengeKind } from "./proto/server/zitadel/session/v2alpha/challenge";
+
export { Session } from "./proto/server/zitadel/session/v2alpha/session";
export {
ListSessionsResponse,
@@ -25,6 +27,8 @@ export {
GetBrandingSettingsResponse,
GetLegalAndSupportSettingsResponse,
GetGeneralSettingsResponse,
+ GetLoginSettingsResponse,
+ GetLoginSettingsRequest,
} from "./proto/server/zitadel/settings/v2alpha/settings_service";
export {
AddHumanUserResponse,