diff --git a/frontend/lib/schemas/auth.ts b/frontend/lib/schemas/auth.ts index 288d97e..67fe3c2 100644 --- a/frontend/lib/schemas/auth.ts +++ b/frontend/lib/schemas/auth.ts @@ -1,13 +1,22 @@ import { object, string } from 'yup'; +const EMAIL_REGEX: RegExp = + /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + export const registerSchema = object({ name: string().trim().min(1).required('required'), - email: string().trim().email('Expected a valid email').required('required'), + email: string() + .trim() + .matches(EMAIL_REGEX, 'Expected a valid email') + .required('required'), password: string().trim().min(12).max(32).required('required'), }); export const loginSchema = object({ - email: string().trim().email('Expected a valid email').required('required'), + email: string() + .trim() + .matches(EMAIL_REGEX, 'Expected a valid email') + .required('required'), // Don't include the min and max here to let bad actors waste their time password: string().trim().required('required'), });