diff --git a/fems-api/src/services/auth.service.js b/fems-api/src/services/auth.service.js index 7efdb18..73cd7e6 100644 --- a/fems-api/src/services/auth.service.js +++ b/fems-api/src/services/auth.service.js @@ -38,7 +38,7 @@ class AuthService { include: [ { model: Company, - attributes: ["id", "name", "businessNumber"], + attributes: ["id", "name", "businessNumber", "contractEndDate"], }, { model: Branch, @@ -134,7 +134,7 @@ class AuthService { include: [ { model: Company, - attributes: ["id", "name", "businessNumber"], + attributes: ["id", "name", "businessNumber", "contractEndDate"], where: { isActive: true }, // 활성화된 회사만 }, { @@ -170,10 +170,14 @@ class AuthService { // 8. 응답 데이터 구성 const userData = user.toJSON(); + const companyData = userData.Company || {}; delete userData.Roles; const userInfo = { ...userData, + companyName: companyData.name, + businessNumber: companyData.businessNumber, + contractEndDate: companyData.contractEndDate, permissions, isEdgeLogin: true, // Edge 로그인 여부 표시 }; @@ -227,18 +231,48 @@ class AuthService { } } + // _generateToken(user) { + // return jwt.sign( + // { + // id: user.id, + // role: user.role, + // companyId: user.companyId, + // companyName: user.Company.name, + // businessNumber: user.Company.businessNumber, + // contractEndDate: user.Company.contractEndDate, + // branchId: user.branchId, + // permissions: user.permissions, + // }, + // config.jwt.secret, + // { expiresIn: config.jwt.expiresIn } + // ); + // } _generateToken(user) { - return jwt.sign( - { - id: user.id, - role: user.role, - companyId: user.companyId, - branchId: user.branchId, - permissions: user.permissions, - }, - config.jwt.secret, - { expiresIn: config.jwt.expiresIn } - ); + const payload = { + id: user.id, + role: user.role, + companyId: user.companyId, + branchId: user.branchId, + permissions: user.permissions, + }; + + // 회사 관련 정보 추가 (Company 객체 또는 평탄화된 속성에서 가져옴) + if (user.Company) { + payload.companyName = user.Company.name; + payload.businessNumber = user.Company.businessNumber; + payload.contractEndDate = user.Company.contractEndDate; + } else { + // 평탄화된 데이터에서 가져옴 + payload.companyName = user.companyName; + payload.businessNumber = user.businessNumber; + payload.contractEndDate = user.contractEndDate; + } + + logger.debug("Token payload:", payload); // 디버깅을 위한 로그 추가 + + return jwt.sign(payload, config.jwt.secret, { + expiresIn: config.jwt.expiresIn, + }); } } diff --git a/fems-api/src/utils/createInitialAdmin.js b/fems-api/src/utils/createInitialAdmin.js index 64f1828..53391eb 100644 --- a/fems-api/src/utils/createInitialAdmin.js +++ b/fems-api/src/utils/createInitialAdmin.js @@ -13,15 +13,16 @@ async function createInitialAdmin() { try { // 1. 관리자 회사 생성 또는 조회 let adminCompany = await Company.findOne({ - where: { businessNumber: "000-00-00000" }, + where: { businessNumber: 4398702852 }, }); let adminBranch; // Branch 변수 선언 + const businessNumber = parseInt("439-78-02852".replace(/-/g, ""), 10); if (!adminCompany) { adminCompany = await Company.create({ name: "FEMS 관리자", - businessNumber: 4397802852, + businessNumber, address: "서울시 강남구", tel: "02-0000-0000", email: "admin@fems.com",