7 글 보임 - 1 에서 7 까지 (총 7 중에서)
-
글쓴이글
-
2023년 3월 17일 10:31 #72600
이창민참가자안녕하세요 센세 하기와같이 회원가입시 코드를 작성했는데욤 업체당 업체당 1계정 부여하는 형식으로 만들어본건데 고객입장에서 관리자한테 계정을 부여받고 비밀번호를 초기화해야되잖아요 그래서 찾아보니까 nodemailer였나 쨋든 그걸 써야한다는데 이메일인증없이 비밀번호 초기화/변경 방법이 있을까요?
2023년 3월 17일 14:56 #72627
codingapple키 마스터그 사람이 그 이메일 소유주인지 맞는지 확인해야되는데 메일보내는거밖에 방법이 없는듯요 아니면 그냥 관리자가 수동으로 1234로 리셋시켜주거나 합시다
2023년 3월 17일 17:09 #72646
이창민참가자비밀번호 찾기와 같은 기능에서 사용하려면 같은지 다른지 비교 후 같으면 새로운 비밀번호를 설정하게해서 DB에 넣어주는 방법을 사용함. 이메일을 사용하는게아니라 그냥 아이디를 사용하는거여서
위방법으로해도 되는걸까요? 가능할까요??
2023년 3월 17일 17:16 #72649
이창민참가자쎈세 이녀석 믿어봐도 되는걸까요??
이 코드에서는 사용자가 로그인할 때 입력한 비밀번호를 해싱하여 데이터베이스에 저장하고 있습니다. 사용자가 비밀번호를 변경하려면 다음과 같은 방법을 사용할 수 있습니다.
사용자가 새로운 비밀번호를 입력합니다. 입력한 비밀번호를 bcrypt를 사용하여 해싱합니다. 데이터베이스에서 해당 사용자의 비밀번호를 변경합니다. 이 과정은 다음과 같이 코드로 작성할 수 있습니다.
javascriptCopy code // 사용자가 새로운 비밀번호를 입력한 후 제출한 경우 app.post('/change-password', (req, res) => { const id = req.session.id; // 현재 로그인한 사용자의 ID const newPassword = req.body.newPassword; // 사용자가 입력한 새로운 비밀번호
// 새로운 비밀번호를 해싱합니다. bcrypt.hash(newPassword, saltRounds, (err, hash) => { try { // 데이터베이스에서 해당 사용자의 정보를 업데이트합니다. db.collection("login").updateOne( { id: id }, { $set: { pw: hash } }, (error, result) => { if (error) { console.log("Error updating password: ", error); res.status(500).send("Internal Server Error"); } else { res.redirect("/admin-user-list"); } } ); } catch { console.log("err: " + err); } }); });
이 코드에서는 app.post('/change-password', ...)를 사용하여 사용자가 새로운 비밀번호를 입력하고 제출할 때 호출됩니다. 이후, 입력한 새로운 비밀번호를 bcrypt.hash()를 사용하여 해싱합니다. 그리고 데이터베이스에서 해당 사용자의 비밀번호를 업데이트합니다.
참고로, 이 코드에서는 현재 로그인한 사용자의 ID를 req.session.id를 통해 가져온다고 가정합니다. 따라서, 해당 사용자의 ID를 세션에 저장해두어야 합니다. 만약 세션을 사용하지 않는다면, 다른 방법으로 현재 로그인한 사용자의 ID를 가져와야 합니다.
-
글쓴이글
7 글 보임 - 1 에서 7 까지 (총 7 중에서)
- 답변은 로그인 후 가능합니다.