diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-06 00:55:08 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-06 00:55:08 +0000 |
| commit | 67fe86f4df464c8665c90870e4ae3c87165d4bb8 (patch) | |
| tree | 2cbd5d0c4b556c0146397df4a10d8187036b3d75 | |
| parent | b191144ec07c2f7eb9ad33ea6f2d7e31b6e00fce (diff) | |
(임수민) 데이터룸 로그인 수정
| -rw-r--r-- | lib/owner-companies/service.ts | 8 | ||||
| -rw-r--r-- | lib/users/auth/email-auth.ts | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/owner-companies/service.ts b/lib/owner-companies/service.ts index 554e2a43..4fa5d5c3 100644 --- a/lib/owner-companies/service.ts +++ b/lib/owner-companies/service.ts @@ -47,11 +47,14 @@ export async function createOwnerCompanyUser( employeeNumber?: string; } ) { - // 이메일 중복 체크 + // 이메일 정규화 (다른 유저 생성 로직과 일관성 유지) + const normalizedEmail = data.email.toLowerCase().trim(); + + // 이메일 중복 체크 (정규화된 이메일로 체크) const existing = await db .select() .from(users) - .where(eq(users.email, data.email)) + .where(eq(users.email, normalizedEmail)) .limit(1); if (existing.length > 0) { @@ -62,6 +65,7 @@ export async function createOwnerCompanyUser( .insert(users) .values({ ...data, + email: normalizedEmail, // 정규화된 이메일로 저장 ownerCompanyId: companyId, domain: "partners", // 발주처 도메인 isActive: true, diff --git a/lib/users/auth/email-auth.ts b/lib/users/auth/email-auth.ts index 9b87add5..72cd46d8 100644 --- a/lib/users/auth/email-auth.ts +++ b/lib/users/auth/email-auth.ts @@ -1,6 +1,6 @@ 'use server'; -import { eq, and } from 'drizzle-orm'; +import { eq, and, sql } from 'drizzle-orm'; import db from '@/db/db'; import { users, mfaTokens } from '@/db/schema'; import { isEmailWhitelisted } from '@/lib/email-whitelist/service'; @@ -34,18 +34,19 @@ export async function checkEmailAndStartAuth(email: string): Promise<{ const normalizedEmail = email.toLowerCase().trim(); - // 1. 사용자 존재 확인 + // 1. 사용자 존재 확인 (대소문자 구분 없이 비교 - 기존 데이터 호환성) const [user] = await db .select({ id: users.id, name: users.name, email: users.email, + language: users.language, isActive: users.isActive, isLocked: users.isLocked, lockoutUntil: users.lockoutUntil, }) .from(users) - .where(eq(users.email, normalizedEmail)) + .where(sql`LOWER(${users.email}) = LOWER(${normalizedEmail})`) .limit(1); if (!user) { |
