//패스워드 찾기
@Override
public String findPw(String user_id, String user_name) throws Exception {
Map map = new HashMap();
map.put("user_id", user_id);
map.put("user_name", user_name);
return session.selectOne(namespace + "findPw", map);
}
tb_user 테이블의 user_id와 user_name과 비교하여 user_email을 찾아줌
memberMapper.xml
<!-- 패스워드 찾기(id와 name 찾아 이메일 반환) -->
<select id="findPw" parameterType="MemberDto" resultType="String">
select user_email from tb_user
where user_id = #{user_id} and user_name = #{user_name}
</select>
select 해 온 user_email을 통해 user_pw를 업로드 해 줄 예정
1) 임시 비밀번호 발급 → 임시 비밀번호 이메일 발송 → 임시 비밀번호 암호화 → DB 업로드
forget.jsp
<script>
//패스워드 찾기(모달창에 정보 띄우기)
$("#findPw").click(function() {
var csrfHeaderName = "${_csrf.headerName}";
var csrfTokenValue= "${_csrf.token}";
let a = document.getElementById("user_id").value;
let b = document.getElementById("user_name_pw").value;
//alert("모달창 진입")
//아이디 찾기 이메일 데이터 넘기기
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader(csrfHeaderName, csrfTokenValue);},
type: 'POST',
url: '/ycc/mypage/findPw',
headers : { "content-type" : "application/json" },
data: JSON.stringify({user_id:a, user_name:b}),
dataType: 'text',
success: function(user_email) {
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader(csrfHeaderName, csrfTokenValue);},
type: 'post',
url: '/ycc/signin/pwEmail',
headers : { "content-type" : "application/json" },
data: JSON.stringify({user_email:user_email}),
dataType: 'text',
success: function(user_email) {
},
error: function(){
alert ("정보를 다시 확인해주세요(1).")
}
})
},
error: function(){
alert ("정보를 다시 확인해주세요(2).")
}
})
})
</script>
MemberController.java
// 이메일로 임시 비밀번호 보내기
@PostMapping("/signin/pwEmail")
@ResponseBody
public String emailSendPw(@RequestBody MemberDto memberdto) throws Exception {
return memberService.pwSendEmail(memberdto.getUser_email());
}
//임시 비밀번호 DB 업로드
public void uploadPw(MemberDto dto) throws Exception {
session.selectOne(namespace + "uploadPw", dto);
}
memberMapper.xml
<!-- 임시 비밀번호 업데이트 -->
<update id="uploadPw" parameterType="MemberDto">
UPDATE tb_user
SET user_pw = #{user_pw}
WHERE user_email = #{user_email}
</update>
: DB에 있는 user_id와 user_name을 찾아 user_email을 반환 → 해당 user_email로 임시비밀번호 발송 → 임시비밀번호 암호화 → DB에 업로드
MemberController.java
MemberServiceImpl.java
MemberDaoImpl.java
tb_user 테이블의 user_id와 user_name과 비교하여 user_email을 찾아줌
memberMapper.xml
select 해 온 user_email을 통해 user_pw를 업로드 해 줄 예정 1) 임시 비밀번호 발급 → 임시 비밀번호 이메일 발송 → 임시 비밀번호 암호화 → DB 업로드
forget.jsp
MemberController.java
임시 비밀번호 이메일 발송 함수
MemberServiceImpl.java
MemberDaoImpl.java
memberMapper.xml