await authClient.signIn.email({
email: contactInfo,
password,
fetchOptions: {
onSuccess: async (ctx) => {
const { data } = await authClient.getSession();
router.push(getAuthRoutingDirectory(data?.user));
},
onError: (ctx) => {
if (ctx.error.code === "BANNED_USER") {
router.push(BANNED_ROUTE);
return;
} else if (ctx.error.code === "EMAIL_NOT_VERIFIED") {
authClient.emailOtp.sendVerificationOtp({
email: contactInfo,
type: "email-verification",
fetchOptions: {
onSuccess: () => {
localStorage.setItem("verification-email", contactInfo);
router.push("/auth/email-verification");
},
onError: (ctx) => {
setError(ctx.error.message);
},
},
});
return;
}
setError(ctx.error.message);
},
},
});
await authClient.signIn.email({
email: contactInfo,
password,
fetchOptions: {
onSuccess: async (ctx) => {
const { data } = await authClient.getSession();
router.push(getAuthRoutingDirectory(data?.user));
},
onError: (ctx) => {
if (ctx.error.code === "BANNED_USER") {
router.push(BANNED_ROUTE);
return;
} else if (ctx.error.code === "EMAIL_NOT_VERIFIED") {
authClient.emailOtp.sendVerificationOtp({
email: contactInfo,
type: "email-verification",
fetchOptions: {
onSuccess: () => {
localStorage.setItem("verification-email", contactInfo);
router.push("/auth/email-verification");
},
onError: (ctx) => {
setError(ctx.error.message);
},
},
});
return;
}
setError(ctx.error.message);
},
},
});