summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-06 00:55:08 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-06 00:55:08 +0000
commit67fe86f4df464c8665c90870e4ae3c87165d4bb8 (patch)
tree2cbd5d0c4b556c0146397df4a10d8187036b3d75
parentb191144ec07c2f7eb9ad33ea6f2d7e31b6e00fce (diff)
(임수민) 데이터룸 로그인 수정
-rw-r--r--lib/owner-companies/service.ts8
-rw-r--r--lib/users/auth/email-auth.ts7
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) {