Implemented the reset password mechanism

This commit is contained in:
Tiago Ribeiro
2023-08-31 21:48:02 +01:00
parent f2323b35b8
commit 41d6303403
14 changed files with 180 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
import {NextApiRequest, NextApiResponse} from "next";
import {createUserWithEmailAndPassword, getAuth} from "firebase/auth";
import {createUserWithEmailAndPassword, getAuth, sendPasswordResetEmail} from "firebase/auth";
import {app} from "@/firebase";
import {sessionOptions} from "@/lib/session";
import {withIronSessionApiRoute} from "iron-session/next";

View File

@@ -0,0 +1,17 @@
import {NextApiRequest, NextApiResponse} from "next";
import {getAuth, sendPasswordResetEmail, confirmPasswordReset} from "firebase/auth";
import {app} from "@/firebase";
import {sessionOptions} from "@/lib/session";
import {withIronSessionApiRoute} from "iron-session/next";
const auth = getAuth(app);
export default withIronSessionApiRoute(confirm, sessionOptions);
async function confirm(req: NextApiRequest, res: NextApiResponse) {
const {code, password} = req.body as {code: string; password: string};
confirmPasswordReset(auth, code, password)
.then(() => res.status(200).json({ok: true}))
.catch(() => res.status(404).json({ok: false}));
}

View File

@@ -0,0 +1,17 @@
import {NextApiRequest, NextApiResponse} from "next";
import {getAuth, sendPasswordResetEmail} from "firebase/auth";
import {app} from "@/firebase";
import {sessionOptions} from "@/lib/session";
import {withIronSessionApiRoute} from "iron-session/next";
const auth = getAuth(app);
export default withIronSessionApiRoute(reset, sessionOptions);
async function reset(req: NextApiRequest, res: NextApiResponse) {
const {email} = req.body as {email: string};
sendPasswordResetEmail(auth, email)
.then(() => res.status(200).json({ok: true}))
.catch(() => res.status(404).json({ok: false}));
}