handle password redirect from browser

This commit is contained in:
Max Peintner
2024-11-12 12:07:31 +01:00
parent a2890877f1
commit 8d969449e2
4 changed files with 23 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ import { create } from "@zitadel/client";
import { ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
import { PasswordComplexitySettings } from "@zitadel/proto/zitadel/settings/v2/password_settings_pb";
import { useTranslations } from "next-intl";
import { redirect } from "next/navigation";
import { useState } from "react";
import { FieldValues, useForm } from "react-hook-form";
import { Alert } from "./alert";
@@ -103,6 +104,11 @@ export function ChangePasswordForm({
passwordResponse.error
) {
setError(passwordResponse.error);
return;
}
if (passwordResponse && passwordResponse.nextStep) {
return redirect(passwordResponse.nextStep);
}
return;

View File

@@ -5,7 +5,7 @@ import { create } from "@zitadel/client";
import { ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
import { useTranslations } from "next-intl";
import { useRouter } from "next/navigation";
import { redirect, useRouter } from "next/navigation";
import { useState } from "react";
import { useForm } from "react-hook-form";
import { Alert, AlertType } from "./alert";
@@ -71,9 +71,14 @@ export function PasswordForm({
if (response && "error" in response && response.error) {
setError(response.error);
return;
}
return response;
if (response && response.nextStep) {
return redirect(response.nextStep);
}
return;
}
async function resetPasswordAndContinue() {

View File

@@ -11,6 +11,7 @@ import { create } from "@zitadel/client";
import { ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
import { PasswordComplexitySettings } from "@zitadel/proto/zitadel/settings/v2/password_settings_pb";
import { useTranslations } from "next-intl";
import { redirect } from "next/navigation";
import { useState } from "react";
import { FieldValues, useForm } from "react-hook-form";
import { Alert } from "./alert";
@@ -123,7 +124,14 @@ export function SetPasswordForm({
passwordResponse.error
) {
setError(passwordResponse.error);
return;
}
if (passwordResponse && passwordResponse.nextStep) {
return redirect(passwordResponse.nextStep);
}
return;
}
const { errors } = formState;

View File

@@ -249,7 +249,8 @@ export async function sendPassword(command: UpdateSessionCommand) {
params.append("organization", command.organization);
}
return redirect(`/login?` + params);
// move this to browser
return { nextStep: `/login?${params}` };
}
// without OIDC flow