Spring boot kim's cafe/회원관련 5

Springboot 회원탈퇴!(1)

예약/결제/게시글/댓글/인증 구현이 얼추 끝났다 이제 회원 탈퇴를 만들 건데 이전의 함수들을 이용하면 된다 답글 서비스는 아직 구현하지 않아서 나중에 답글 서비스까지 구현하면 한 번 더 와서 추가해 줘야 할 거 같다 일단 프런트 마이페이지에 링크를 추가해주고 controller html js 결과 진짜 기능만 되는 허접한 페이지가 완성되었다 서버 service 로그인을 해야 가능한 기능인데 혹시 몰라서 if(confrimEmail(email)){ 존재하는 아이디인지 검사를 해주고 if(bCryptPasswordEncoder.matches(userdto.getPwd(),uservo.getPwd())){ 비밀번호가 일치 한지 검사해주고 if(reservationservice.getReservationByEm..

Spring boot 마이페이지!(4) 비밀번호 변경 with validation

비밀번호 심플하게 변경 페이지를 만든다 controller로가서 이제 처리해주는 작업을 만들자 restcontroller로 가서 작성해준다! 이렇게 받을 건데 현재는 리턴 타입이 boolean 생각해보면 이전부터 계속 boolean으로 리턴을 해줬는데 그랬을 때 생기는 문제가 아니 true/false인건좋은데 그래서 뭐가 틀린건데..? 인증번호? 아니면 서버 문제?? 이렇게 질문이 생길 수가 있다 그래서 다음부턴 enum을 사용해서 boolean과 error메시지를 담아서 리턴해보자! 일단 boolean으로 작성! 이제 이번에는 특별히 native쿼리를 사용할 예정이다 dao로 가서 이렇게 update문을 날려주는데 좀 특이하다 select에 비해 붙는 게 많다 이유는 둘이 사용하는 쿼리 작동방식이 다른..

Spring boot 마이페이지!(3) 이메일 인증

이제 입력한 숫자로 판별을 할 건데 역시 ajax를 이용해서 하려고 한다 일단 userserivce에서 판별해주는 함수를 만든다 그래서 맞다면 db의 emailcheck를 false->true로 아니라면 false를 담고 있는 no를 리턴한다! 그다음 restcontroller를 만들어준다 자 여기서 중요한 점 인증이 성공해서 db데이터가 true로 바뀌어도 나는 현재 첫 로그인 상태 그대로를 사용 중이다 그래서 바뀐 상태의 emailcheck를 가지고 와서 다시 시큐리티 세션의 @AuthenticationPrincipal 에게 다시 꼭 넣어준다! 아니면 뭐 로그아웃을 시키고 로그인을 다시 시켜도 되긴 하는데 일단 이 방법으로 사용하겠다 그리고 마지막 ajax를 만들어주자! 아 불편하다... 위에 aja..

Spring boot 마이페이지!(2) 이메일 인증 with JavaMailSender

메일을 보내기 위해 build.gradle 로 들어가서 하나의 의존성을 추가한다 이걸 넣으면 @Autowired private JavaMailSender sender;//자체적으로 제공해주는 기능 이렇게 자체적으로 제공해주는 기능을 사용할 수 있다 의외로 메일 보내는 건 어렵지 않다 toaddress=보낼 주소 subject=제목 body=내용이다 핸드폰 인증도 비슷한 거 같다 다만 돈이 든다 그래서 마지막에 공부해보려고 한다 그리고 application.properties로 가서 이렇게 추가해준다 단 사용할 계정에서 보안 수준이 낮은 앱의 액세스 허용을 해줘야 한다! 이제 userservice로가서 인증번호 전송 발생 시 db에 들어있는 랜덤 넘버를 수정해주는 함수를 만들자 @Transactional ..

Spring boot 마이페이지!(1) with AuthenticationPrincipal

이제 마이페이지를 만들건대 간단하게 내 정보 비밀번호변경 이메일 인증 서비스를 구현해볼 것이다! 컨트롤러에서 @GetMapping("/mypage") /auth/를 빼고 작성해준다 왜냐면 로그인 시에만 들어올 수 있게 해 주기 위해서 이다 @AuthenticationPrincipal principaldetail principaldetail 로그인을 성공했다면 여기에서 로그인한 사용자 정보를 꺼내 쓸 수 있다 역시 스프링이 자체적으로 제공하는 기능이다 편리하고 보안성 있다 그리고 model에 uservo를 통으로 넘겨주고 html에서 사용해준다 놀랍게도 thymealf에서 함수까지 그대로 저렇게 사용이 가능하다 모든 게 제대로 출력된다 물론 시간제한도 만들고 해야 하지만 일단 완벽하게는 아니더라도 80프로..