44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
"use server";
|
|
|
|
import { encodedRedirect } from "@/utils/utils";
|
|
import { createClient } from "@/utils/supabase/server";
|
|
import { headers } from "next/headers";
|
|
import { redirect } from "next/navigation";
|
|
|
|
export const resetPasswordAction = async (formData: FormData) => {
|
|
const supabase = await createClient();
|
|
|
|
const password = formData.get("password") as string;
|
|
const confirmPassword = formData.get("confirmPassword") as string;
|
|
|
|
if (!password || !confirmPassword) {
|
|
encodedRedirect(
|
|
"error",
|
|
"/protected/reset-password",
|
|
"Password and confirm password are required"
|
|
);
|
|
}
|
|
|
|
if (password !== confirmPassword) {
|
|
encodedRedirect(
|
|
"error",
|
|
"/protected/reset-password",
|
|
"Passwords do not match"
|
|
);
|
|
}
|
|
|
|
const { error } = await supabase.auth.updateUser({
|
|
password: password,
|
|
});
|
|
|
|
if (error) {
|
|
encodedRedirect(
|
|
"error",
|
|
"/protected/reset-password",
|
|
"Password update failed"
|
|
);
|
|
}
|
|
|
|
encodedRedirect("success", "/protected/reset-password", "Password updated");
|
|
};
|