Error handling for invalid users

This commit is contained in:
Ephraim Atta-Duncan
2023-06-05 15:52:00 +00:00
parent 5d2349086d
commit e9cee23c15
2 changed files with 33 additions and 7 deletions

View File

@ -29,9 +29,28 @@ export default function ForgotPassword() {
loading: "Sending...",
success: `Reset link sent. `,
error: "Could not send reset link :/",
},
{
style: {
minWidth: "200px",
},
}
);
if (!response.ok) {
toast.dismiss();
if (response.status == 400 || response.status == 404) {
toast.error("Email address not found.");
}
if (response.status == 500) {
toast.error("Something went wrong.");
}
return;
}
if (response.ok) {
setResetSuccessful(true);
}

View File

@ -20,16 +20,23 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) {
});
if (!user) {
return res.status(400).json({ message: "No user found with this email." });
return res.status(404).json({ message: "No user found with this email." });
}
const token = crypto.randomBytes(64).toString("hex");
const passwordResetToken = await prisma.passwordResetToken.create({
data: {
token,
userId: user.id,
},
});
let passwordResetToken;
try {
passwordResetToken = await prisma.passwordResetToken.create({
data: {
token,
userId: user.id,
},
});
} catch (error) {
return res.status(500).json({ message: "Error saving token." });
}
await sendResetPassword(user, passwordResetToken.token);