From 5bc53e795dc222323980d509208ae751c012437c Mon Sep 17 00:00:00 2001 From: chpark Date: Thu, 25 Sep 2025 17:17:40 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B6=8C=ED=95=9C=20=EB=B0=98=EC=98=81?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/api.js | 20 ++++++++++---------- routes/users.js | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/routes/api.js b/routes/api.js index 7c5b748..80a35ee 100644 --- a/routes/api.js +++ b/routes/api.js @@ -9,8 +9,8 @@ const { } = require('../database/queries'); const { verifyApiKey, optionalAuth, requirePermission } = require('../middleware/auth'); -// 모든 데이터 조회 (API 키 또는 JWT 토큰 필요) -router.get('/data', verifyApiKey, async (req, res) => { +// 모든 데이터 조회 (API 키 + 읽기 권한 필요) +router.get('/data', verifyApiKey, requirePermission('read'), async (req, res) => { try { const data = await getAllData(); res.json({ @@ -27,8 +27,8 @@ router.get('/data', verifyApiKey, async (req, res) => { } }); -// 특정 ID 데이터 조회 (API 키 또는 JWT 토큰 필요) -router.get('/data/:id', verifyApiKey, async (req, res) => { +// 특정 ID 데이터 조회 (API 키 + 읽기 권한 필요) +router.get('/data/:id', verifyApiKey, requirePermission('read'), async (req, res) => { try { const { id } = req.params; const data = await getDataById(id); @@ -54,8 +54,8 @@ router.get('/data/:id', verifyApiKey, async (req, res) => { } }); -// 데이터 생성 (API 키 또는 JWT 토큰 필요) -router.post('/data', verifyApiKey, async (req, res) => { +// 데이터 생성 (API 키 + 쓰기 권한 필요) +router.post('/data', verifyApiKey, requirePermission('write'), async (req, res) => { try { const { name, description, dataValue } = req.body; @@ -86,8 +86,8 @@ router.post('/data', verifyApiKey, async (req, res) => { } }); -// 데이터 업데이트 (API 키 또는 JWT 토큰 필요) -router.put('/data/:id', verifyApiKey, async (req, res) => { +// 데이터 업데이트 (API 키 + 쓰기 권한 필요) +router.put('/data/:id', verifyApiKey, requirePermission('write'), async (req, res) => { try { const { id } = req.params; const { name, description, dataValue } = req.body; @@ -126,8 +126,8 @@ router.put('/data/:id', verifyApiKey, async (req, res) => { } }); -// 데이터 삭제 (API 키 또는 JWT 토큰 필요) -router.delete('/data/:id', verifyApiKey, async (req, res) => { +// 데이터 삭제 (API 키 + 삭제 권한 필요) +router.delete('/data/:id', verifyApiKey, requirePermission('delete'), async (req, res) => { try { const { id } = req.params; const result = await deleteData(id); diff --git a/routes/users.js b/routes/users.js index cdd6770..546a698 100644 --- a/routes/users.js +++ b/routes/users.js @@ -7,10 +7,10 @@ const { updateUser, deleteUser } = require('../database/user-queries'); -const { optionalAuth } = require('../middleware/auth'); +const { verifyApiKey, optionalAuth, requirePermission } = require('../middleware/auth'); -// 모든 사용자 조회 -router.get('/', optionalAuth, async (req, res) => { +// 모든 사용자 조회 (API 키 + 읽기 권한 필요) +router.get('/', verifyApiKey, requirePermission('read'), async (req, res) => { try { const users = await getAllUsers(); res.json({ @@ -27,8 +27,8 @@ router.get('/', optionalAuth, async (req, res) => { } }); -// 특정 사용자 조회 -router.get('/:userId', optionalAuth, async (req, res) => { +// 특정 사용자 조회 (API 키 + 읽기 권한 필요) +router.get('/:userId', verifyApiKey, requirePermission('read'), async (req, res) => { try { const { userId } = req.params; const user = await getUserById(userId); @@ -54,8 +54,8 @@ router.get('/:userId', optionalAuth, async (req, res) => { } }); -// 사용자 생성 -router.post('/', optionalAuth, async (req, res) => { +// 사용자 생성 (API 키 + 쓰기 권한 필요) +router.post('/', verifyApiKey, requirePermission('write'), async (req, res) => { try { const { USER_ID, USER_NAME, DEPT_CODE } = req.body; @@ -96,7 +96,8 @@ router.post('/', optionalAuth, async (req, res) => { }); // 사용자 정보 수정 -router.put('/:userId', optionalAuth, async (req, res) => { +// 사용자 정보 업데이트 (API 키 + 쓰기 권한 필요) +router.put('/:userId', verifyApiKey, requirePermission('write'), async (req, res) => { try { const { userId } = req.params; const { USER_NAME, DEPT_CODE } = req.body; @@ -134,8 +135,8 @@ router.put('/:userId', optionalAuth, async (req, res) => { } }); -// 사용자 삭제 -router.delete('/:userId', optionalAuth, async (req, res) => { +// 사용자 삭제 (API 키 + 삭제 권한 필요) +router.delete('/:userId', verifyApiKey, requirePermission('delete'), async (req, res) => { try { const { userId } = req.params; const result = await deleteUser(userId);