Replaced the previous e-mail verification process for our own

This commit is contained in:
Tiago Ribeiro
2023-10-22 09:38:29 +01:00
parent e10aebf4c0
commit faced0b20c
7 changed files with 53 additions and 14 deletions

View File

@@ -4,21 +4,27 @@ import {getAuth as getAdminAuth, UserRecord} from "firebase-admin/auth";
import {app, adminApp} from "@/firebase";
import {sessionOptions} from "@/lib/session";
import {withIronSessionApiRoute} from "iron-session/next";
const auth = getAuth(app);
import {prepareMailer, prepareMailOptions} from "@/email";
import ShortUniqueId from "short-unique-id";
export default withIronSessionApiRoute(sendVerification, sessionOptions);
async function sendVerification(req: NextApiRequest, res: NextApiResponse) {
const short = new ShortUniqueId();
if (req.session.user) {
sendSignInLinkToEmail(auth, req.session.user.email, {
url: `https://platform.encoach.com/${req.session.user.email}`,
handleCodeInApp: true,
})
.then(() => res.status(200).json({ok: true}))
.catch((e) => {
console.log(e);
res.status(404).json({ok: false});
});
const transport = prepareMailer("verification");
const mailOptions = prepareMailOptions(
{
name: req.session.user.name,
code: short.randomUUID(6),
email: req.session.user.email,
},
[req.session.user.email],
"EnCoach Verification",
"verification",
);
await transport.sendMail(mailOptions);
}
}

View File

@@ -72,6 +72,9 @@ export default function Login() {
setIsLoading(true);
axios
.post<{ok: boolean}>("/api/reset/sendVerification", {})
.then(() => {
toast.success("An e-mail has been sent, please make sure to check your spam folder!");
})
.catch((e) => {
console.log(e);
toast.error("Something went wrong, please logout and re-login.", {toastId: "send-verify-error"});

View File

@@ -79,6 +79,9 @@ export default function Register({code: queryCode}: {code: string}) {
setIsLoading(true);
axios
.post<{ok: boolean}>("/api/reset/sendVerification", {})
.then(() => {
toast.success("An e-mail has been sent, please make sure to check your spam folder!");
})
.catch((e) => {
console.log(e);
toast.error("Something went wrong, please logout and re-login.", {toastId: "send-verify-error"});