Made it so users have to verify their e-mail starting to use the application

This commit is contained in:
Tiago Ribeiro
2023-09-07 12:45:31 +01:00
parent 5211e92c65
commit f91cd0ca63
17 changed files with 375 additions and 181 deletions

View File

@@ -0,0 +1,24 @@
import {NextApiRequest, NextApiResponse} from "next";
import {getAuth, sendSignInLinkToEmail, User} 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(sendVerification, sessionOptions);
async function sendVerification(req: NextApiRequest, res: NextApiResponse) {
console.log(auth.currentUser);
if (req.session.user) {
sendSignInLinkToEmail(auth, req.session.user.email, {
url: "https://encoach.com/",
handleCodeInApp: true,
})
.then(() => res.status(200).json({ok: true}))
.catch((e) => {
console.log(e);
res.status(404).json({ok: false});
});
}
}