diff --git a/packages/db/src/services/user.service.ts b/packages/db/src/services/user.service.ts index 5a3168d5..4b7d7d7b 100644 --- a/packages/db/src/services/user.service.ts +++ b/packages/db/src/services/user.service.ts @@ -15,7 +15,10 @@ export async function getUserAccount({ }: { email: string; provider: string; providerId?: string }) { const res = await db.user.findFirst({ where: { - email, + email: { + equals: email, + mode: 'insensitive', + }, }, include: { accounts: { diff --git a/packages/trpc/src/routers/auth.ts b/packages/trpc/src/routers/auth.ts index d53eacc8..972a725a 100644 --- a/packages/trpc/src/routers/auth.ts +++ b/packages/trpc/src/routers/auth.ts @@ -141,6 +141,7 @@ export const authRouter = createTRPCRouter({ .input(zSignInEmail) .mutation(async ({ input, ctx }) => { const provider = 'email'; + const password = input.password.trim(); const user = await getUserAccount({ email: input.email, @@ -158,7 +159,7 @@ export const authRouter = createTRPCRouter({ if (user.account.password?.startsWith('$argon2')) { const validPassword = await verifyPasswordHash( user.account.password ?? '', - input.password, + password, ); if (!validPassword) { @@ -166,7 +167,7 @@ export const authRouter = createTRPCRouter({ } } else { const validPassword = await bcrypt.compare( - input.password, + password, user.account.password ?? '', ); diff --git a/packages/validation/src/index.ts b/packages/validation/src/index.ts index 55aaa561..372a7e0f 100644 --- a/packages/validation/src/index.ts +++ b/packages/validation/src/index.ts @@ -301,13 +301,7 @@ export const zProject = z.object({ }); export type IProjectEdit = z.infer; -export const zPassword = z - .string() - .min(8) - .regex( - /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/, - 'Password must contain at least 8 characters, one uppercase letter, one lowercase letter, one number and one special character', - ); +export const zPassword = z.string().min(8); export const zSignInEmail = z.object({ email: z.string().email().min(1),