TK-FB(공장관리+신고)와 M-Project(부적합관리)를 3개 독립 시스템으로 분리하기 위한 전체 코드 구조 작성. - SSO 인증 서비스 (bcrypt + pbkdf2 이중 해시 지원) - System 1: 공장관리 (TK-FB 기반, 신고 코드 제거) - System 2: 신고 (TK-FB에서 workIssue 코드 추출) - System 3: 부적합관리 (M-Project 기반) - Gateway 포털 (path-based 라우팅) - 통합 docker-compose.yml 및 배포 스크립트 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
/**
|
|
* SSO Auth Service - 중앙 인증 서비스
|
|
*
|
|
* TK Factory Services의 통합 인증을 담당
|
|
* - JWT 발급/검증/갱신
|
|
* - 사용자 CRUD
|
|
* - bcrypt + pbkdf2 비밀번호 호환
|
|
*/
|
|
|
|
const express = require('express');
|
|
const cors = require('cors');
|
|
const authRoutes = require('./routes/authRoutes');
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
app.use(cors({
|
|
origin: true,
|
|
credentials: true
|
|
}));
|
|
app.use(express.json());
|
|
|
|
// Health check
|
|
app.get('/health', (req, res) => {
|
|
res.json({ status: 'ok', service: 'sso-auth', timestamp: new Date().toISOString() });
|
|
});
|
|
|
|
// Auth routes
|
|
app.use('/api/auth', authRoutes);
|
|
|
|
// 404
|
|
app.use((req, res) => {
|
|
res.status(404).json({ success: false, error: 'Not Found' });
|
|
});
|
|
|
|
// Error handler
|
|
app.use((err, req, res, next) => {
|
|
console.error('SSO Auth Error:', err.message);
|
|
res.status(err.status || 500).json({
|
|
success: false,
|
|
error: err.message || 'Internal Server Error'
|
|
});
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`SSO Auth Service running on port ${PORT}`);
|
|
});
|
|
|
|
module.exports = app;
|