refactor: Phase 2-2 - 사용자 관리 모듈화 및 설정 파일 분리
사용자 관리 API를 컨트롤러/라우터 패턴으로 리팩토링하고, CORS 및 보안 설정을 별도 파일로 분리하여 코드 구조 개선 주요 변경사항: - userController.js: 새로운 에러 핸들링 및 로깅 시스템 적용 * ValidationError, NotFoundError, ConflictError 등 커스텀 에러 사용 * logger 유틸리티로 구조화된 로깅 * 관리자 권한 검증 헬퍼 함수 추가 - index.js: 인라인 사용자 관리 라우트 제거 (888 → 605 lines) * 283줄 감소로 코드 가독성 대폭 향상 * userRoutes 모듈 import 및 사용 - userRoutes.js: 문서화 및 로깅 개선 * JSDoc 헤더 추가 * adminOnly 미들웨어에 로깅 추가 신규 파일: - config/cors.js: CORS 정책 설정 (허용 origin, 메소드, 헤더) - config/security.js: Helmet 보안 헤더 설정 (CSP, HSTS, XSS 방지) - middlewares/activityLogger.js: HTTP 요청/응답 활동 로깅 파일 통계: - 3개 파일 수정, 3개 파일 추가 - +437 -480 (net -43 lines) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,26 +1,46 @@
|
||||
// routes/userRoutes.js - 사용자 관리 라우터
|
||||
/**
|
||||
* 사용자 관리 라우터
|
||||
*
|
||||
* 사용자 CRUD 및 상태 관리를 위한 API 라우트 정의
|
||||
*
|
||||
* @author TK-FB-Project
|
||||
* @since 2025-12-11
|
||||
*/
|
||||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const userController = require('../controllers/userController');
|
||||
const { verifyToken } = require('../middlewares/authMiddleware');
|
||||
const logger = require('../utils/logger');
|
||||
|
||||
// 모든 라우트에 인증 미들웨어 적용
|
||||
/**
|
||||
* 모든 라우트에 인증 미들웨어 적용
|
||||
*/
|
||||
router.use(verifyToken);
|
||||
|
||||
// 관리자 권한 확인 미들웨어
|
||||
/**
|
||||
* 관리자 권한 확인 미들웨어
|
||||
*/
|
||||
const adminOnly = (req, res, next) => {
|
||||
if (req.user && (req.user.role === 'admin' || req.user.role === 'system')) {
|
||||
next();
|
||||
} else {
|
||||
logger.warn('관리자 권한 없는 접근 시도', {
|
||||
userId: req.user?.user_id,
|
||||
username: req.user?.username,
|
||||
role: req.user?.role,
|
||||
url: req.originalUrl
|
||||
});
|
||||
return res.status(403).json({
|
||||
success: false,
|
||||
message: '관리자 권한이 필요합니다.'
|
||||
message: '관리자 권한이 필요합니다'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 모든 라우트에 관리자 권한 적용
|
||||
/**
|
||||
* 모든 라우트에 관리자 권한 적용
|
||||
*/
|
||||
router.use(adminOnly);
|
||||
|
||||
// 📋 사용자 목록 조회
|
||||
|
||||
Reference in New Issue
Block a user