Skip to content
Snippets Groups Projects
Commit abf22885 authored by nahyun's avatar nahyun
Browse files
parents 1cd80bb9 b6d573a6
No related branches found
No related tags found
No related merge requests found
...@@ -21,12 +21,12 @@ app.use(cors({ ...@@ -21,12 +21,12 @@ app.use(cors({
credentials: true, credentials: true,
})); }));
//비밀번호 변경 라우트 등록 //비밀번호 변경 라우트 등록
const passwordRoutes = require('./route/conf_password'); // const passwordRoutes = require('./route/conf_password');
//닉네임 변경 라우트 등록 // //닉네임 변경 라우트 등록
const confNameRoutes = require('./route/conf_name.js'); // const confNameRoutes = require('./route/conf_name.js');
//회원 탈퇴 라우트 등록 // //회원 탈퇴 라우트 등록
const deleteUser = require('./route/del_user'); // const deleteUser = require('./route/del_user');
//비밀번호 암호화용 모듈 // //비밀번호 암호화용 모듈
const bcrypt = require('bcrypt'); const bcrypt = require('bcrypt');
//User define //User define
const User = require('./models/user'); const User = require('./models/user');
...@@ -34,15 +34,18 @@ const User = require('./models/user'); ...@@ -34,15 +34,18 @@ const User = require('./models/user');
const Trip = require('./models/trips'); const Trip = require('./models/trips');
//Favorite define //Favorite define
const Favorite = require('./models/favorite'); const Favorite = require('./models/favorite');
// JSON 요청 본문을 파싱하는 미들웨어 추가 // JSON 요청 본문을 파싱하는 미들웨어 추가
app.use(express.json()); app.use(express.json());
//비밀번호 변경 라우트 추가 //비밀번호 변경 라우트 추가
app.use('/conf_password',passwordRoutes); // app.use('/conf_password',passwordRoutes);
//이름 변경 라우트 // //이름 변경 라우트
app.use('/conf_name', confNameRoutes); // app.use('/conf_name', confNameRoutes);
//회원 탈퇴 라우트 // //회원 탈퇴 라우트
app.use('/del_user', deleteUser); // app.use('/del_user', deleteUser);
//사용자 관리 라우트
const userManagementRoutes = require('./route/userManagement');
app.use('/userManagement', userManagementRoutes);
//여행 라우트 //여행 라우트
const tripRoutes = require('./route/tripRoute'); // 라우트 파일 경로 const tripRoutes = require('./route/tripRoute'); // 라우트 파일 경로
// Routes // Routes
...@@ -59,9 +62,11 @@ app.use('/favorites', favoriteRoutes); ...@@ -59,9 +62,11 @@ app.use('/favorites', favoriteRoutes);
const authenticateToken = require('./middleware/authMiddleware.js'); const authenticateToken = require('./middleware/authMiddleware.js');
// 보호된 라우트에 미들웨어 적용 // 보호된 라우트에 미들웨어 적용
app.use('/conf_password', authenticateToken, passwordRoutes); // app.use('/conf_password', authenticateToken, passwordRoutes);
app.use('/conf_name', authenticateToken, confNameRoutes); // app.use('/conf_name', authenticateToken, confNameRoutes);
app.use('/del_user', authenticateToken, deleteUser); // app.use('/del_user', authenticateToken, deleteUser);
app.use('/userManagement', authenticateToken, userManagementRoutes);
//확인 //확인
console.log('GOOGLE_CLIENT_ID:', process.env.GOOGLE_CLIENT_ID); console.log('GOOGLE_CLIENT_ID:', process.env.GOOGLE_CLIENT_ID);
...@@ -186,10 +191,7 @@ app.get('/dashboard', authenticateToken, (req, res) => { ...@@ -186,10 +191,7 @@ app.get('/dashboard', authenticateToken, (req, res) => {
// `); // `);
// }); // });
//signup 경로
app.get('/signup', (req, res) => {
res.sendFile(__dirname + '/public/signup.html'); // login.html 파일 경로 설정
});
//session //session
// app.get('/conf_password', (req, res) => { // app.get('/conf_password', (req, res) => {
......
...@@ -2,11 +2,70 @@ const express = require('express'); ...@@ -2,11 +2,70 @@ const express = require('express');
const User = require('../models/user'); const User = require('../models/user');
const Trip = require('../models/trips'); const Trip = require('../models/trips');
const Review = require('../models/review'); const Review = require('../models/review');
const bcrypt = require('bcrypt');
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router(); const router = express.Router();
// router.get('/change', (req, res) => {
// // 닉네임 변경 HTML 파일 반환
// res.sendFile(path.join(__dirname, '../public/conf_name.html')); // HTML 파일 경로 설정
// });
//사용자 이름 변경(닉네임)
exports.changeName = async (req, res) => {
const { email, newName } = req.body;
const user = await User.findOne({ email });
try {
if (!email || !newName) {
return res.status(400).json({message: '유효하지 않은 요청입니다.'});
}
user.name = newName;
await user.save();
res.status(200).json({ message: ' 이름이 성공적으로 변경되었습니다.', user});
console.log('이름 변경 완료', user);
} catch(error) {
console.error('이름 변경 오류', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.'});
}
};
// 비밀번호 변경
exports.changePassword = async (req, res) => {
const { email, oldPassword, newPassword } = req.body;
try {
const user = await User.findOne({ email });
if (!user || !user.password) {
return res.status(400).json({ message: '사용자를 찾을 수 없거나 잘못된 요청입니다.' });
}
const isMatch = await bcrypt.compare(oldPassword, user.password);
if (!isMatch) {
return res.status(400).json({ message: '기존 비밀번호가 일치하지 않습니다.' });
}
const hashedPassword = await bcrypt.hash(newPassword, 10);
user.password = hashedPassword;
await user.save();
res.status(200).json({ message: '비밀번호가 성공적으로 변경되었습니다.' });
console.log('비밀번호 변경 완료',user);
} catch (error) {
console.error('비밀번호 변경 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
};
// 사용자 삭제 // 사용자 삭제
router.delete('/:userId', async (req, res) => { exports.deleteUser = async (req, res) => {
const { userId } = req.params; const { userId } = req.params;
try { try {
...@@ -19,7 +78,6 @@ router.delete('/:userId', async (req, res) => { ...@@ -19,7 +78,6 @@ router.delete('/:userId', async (req, res) => {
// 사용자가 생성한 여행 데이터 삭제 또는 상태 변경 // 사용자가 생성한 여행 데이터 삭제 또는 상태 변경
await Trip.deleteMany({ create_by: userId }); await Trip.deleteMany({ create_by: userId });
//사용자가 작성한 리뷰 제거 //사용자가 작성한 리뷰 제거
//사용자가 삭제되면 삭제되나..?
await Review.deleteMany({ create_by: userId}); await Review.deleteMany({ create_by: userId});
// 사용자가 공동 작업자로 포함된 경우 업데이트 // 사용자가 공동 작업자로 포함된 경우 업데이트
...@@ -33,6 +91,6 @@ router.delete('/:userId', async (req, res) => { ...@@ -33,6 +91,6 @@ router.delete('/:userId', async (req, res) => {
console.error('사용자 삭제 오류:', error); console.error('사용자 삭제 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' }); res.status(500).json({ message: '서버 오류가 발생했습니다.' });
} }
}); };
module.exports = router;
...@@ -61,9 +61,10 @@ tripSchema.pre('save', function (next) { ...@@ -61,9 +61,10 @@ tripSchema.pre('save', function (next) {
const start = new Date(trip.start_date); const start = new Date(trip.start_date);
const end = new Date(trip.end_date); const end = new Date(trip.end_date);
// 기존 `plans` 데이터를 유지 // // 기존 `plans` 데이터를 유지
const plans = trip.plans || new Map(); // const plans = trip.plans || new Map();
// plans가 없는 경우 초기화
const plans = trip.plans instanceof Map ? trip.plans : new Map(Object.entries(trip.plans || {}));
let currentDay = 1; let currentDay = 1;
// 새 day만 추가 // 새 day만 추가
......
const express = require('express');
const User = require('../models/user');
const bcrypt = require('bcrypt');
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router();
router.get('/change', (req, res) => {
// 닉네임 변경 HTML 파일 반환
res.sendFile(path.join(__dirname, '../public/conf_name.html')); // HTML 파일 경로 설정
});
//사용자 이름 변경(닉네임)
router.post('/change', async (req, res) => {
const { email, newName } = req.body;
const user = await User.findOne({ email });
try {
if (!email || !newName) {
return res.status(400).json({message: '유효하지 않은 요청입니다.'});
}
// 사용자 존재 여부 확인
if (!user) {
return res.status(404).json({ message: '사용자를 찾을 수 없습니다.' });
}
user.name = newName;
await user.save();
res.status(200).json({ message: '이름이 성공적으로 변경되었습니다.', user });
console.log('이름 변경 완료', user);
} catch (error) {
console.error('이름 변경 오류', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
});
module.exports = router;
\ No newline at end of file
const express = require('express');
const bcrypt = require('bcrypt');
const User = require('../models/user'); // User 모델 가져오기
const path = require('path'); // 경로 처리 모듈 추가
const router = express.Router();
router.get('/change', (req, res) => {
// 비밀번호 변경 HTML 파일 반환
res.sendFile(path.join(__dirname, '../public/conf_password.html')); // HTML 파일 경로 설정
});
// 비밀번호 변경 로직
router.post('/change', async (req, res) => {
const { email, oldPassword, newPassword } = req.body;
try {
const user = await User.findOne({ email });
if (!user || !user.password) {
return res.status(400).json({ message: '사용자를 찾을 수 없거나 잘못된 요청입니다.' });
}
const isMatch = await bcrypt.compare(oldPassword, user.password);
if (!isMatch) {
return res.status(400).json({ message: '기존 비밀번호가 일치하지 않습니다.' });
}
const hashedPassword = await bcrypt.hash(newPassword, 10);
user.password = hashedPassword;
await user.save();
res.status(200).json({ message: '비밀번호가 성공적으로 변경되었습니다.' });
console.log('비밀번호 변경 완료',user);
} catch (error) {
console.error('비밀번호 변경 오류:', error);
res.status(500).json({ message: '서버 오류가 발생했습니다.' });
}
});
module.exports = router;
const express = require('express');
const router = express.Router();
const User = require('../models/user'); // User 스키마 참조
const userManagementController = require('../controllers/userManagementController');
router.post('/change', userManagementController.changeName);
router.post('/changePassword', userManagementController.changePassword);
router.delete('/:userId', userManagementController.deleteUser);
module.exports = router;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment