Skip to content

Commit

Permalink
Merge pull request #26 from mingoo36/master
Browse files Browse the repository at this point in the history
비밀번호 수정시 현재비밀번호 검증 추가
  • Loading branch information
mingoo36 authored Dec 19, 2024
2 parents c7f04b6 + 533a201 commit e0c378c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ jobs:
cd /home/ubuntu/community/5-covy-lee-community-be # 프로젝트 폴더 경로로 이동
git checkout master # master 브랜치 확인
git pull origin master # 최신 코드 가져오기
cd /home/ubuntu
./server-restart.sh # 서버 재실행
echo "Git pull completed successfully!"
21 changes: 19 additions & 2 deletions controllers/userController.js
Original file line number Diff line number Diff line change
Expand Up @@ -327,14 +327,14 @@ exports.updateSession = (req, res) => {
exports.updatePassword = async (req, res) => {
console.log('Session:', req.session); // 세션 객체 전체 확인
console.log('Session User:', req.session?.user); // 세션 내 사용자 정보 확인
const { newPassword, confirmPassword } = req.body; // 새로운 비밀번호와 확인 비밀번호
const { currentPassword, newPassword, confirmPassword } = req.body; // 현재 비밀번호, 새 비밀번호, 확인 비밀번호
const userId = req.session?.user?.id || null; // 세션에서 사용자 ID 가져오기

if (!userId) {
return res.status(401).json({ message: '로그인이 필요합니다.' }); // 로그인하지 않은 사용자 처리
}

if (!newPassword || !confirmPassword) {
if (!currentPassword || !newPassword || !confirmPassword) {
return res.status(400).json({ message: '모든 필드를 입력해주세요.' }); // 필드가 비어있는 경우
}

Expand All @@ -351,6 +351,22 @@ exports.updatePassword = async (req, res) => {
}

try {
// 데이터베이스에서 현재 비밀번호 가져오기
const [user] = await pool.execute('SELECT password FROM user WHERE user_id = ?', [userId]);

if (user.length === 0) {
return res.status(404).json({ message: '사용자를 찾을 수 없습니다.' }); // 사용자 없음
}

const validCurrentPassword = await bcrypt.compare(currentPassword, user[0].password);
if (!validCurrentPassword) {
return res.status(400).json({ message: '현재 비밀번호가 일치하지 않습니다.' }); // 현재 비밀번호 불일치
}

if (await bcrypt.compare(newPassword, user[0].password)) {
return res.status(400).json({ message: '새 비밀번호는 기존 비밀번호와 다르게 설정해야 합니다.' }); // 새 비밀번호가 기존 비밀번호와 동일
}

// 새 비밀번호 암호화
const hashedNewPassword = await bcrypt.hash(newPassword, 10);

Expand All @@ -372,3 +388,4 @@ exports.updatePassword = async (req, res) => {
};



0 comments on commit e0c378c

Please sign in to comment.