221204~1207_데이트 장소 다이어리 제작 4_게시글/덧글 기능 테스트, 예외 처리, 로그인/회원가입 페이지 기능 및 디자인 적용

창고·2022년 12월 8일
0

해당 게시글은 개인 프로젝트인 "데이트 장소 다이어리 제작"
#14 "게시글 기능 테스트 및 구현", #15 "예외 처리", #19 "로그인 / 회원가입 페이지 디자인+기능 적용" 이슈를 다루고 있습니다.

1. 진행 사항

(1) 요약

  • 게시글 / 덧글 기능 테스트
  • 예외 처리 (비즈니스 로직 관련, 인증/인가 관련)
  • 기본 레이아웃 제작
  • 로그인 페이지 제작, 기능 구현
  • 회원가입 페이지 제작, 기능 구현
  • 회원정보 수정 페이지 제작, 기능 구현

(2) 상세

  • 인증 상태에 따라 버튼이 다르게 표시되도록 설정
 <div class="text-end">
  <button sec:authorize="!isAuthenticated()" type="button" onclick="location.href='/user/login';" class="btn btn-outline-light me-2" id="login">로그인</button>
  <button sec:authorize="isAuthenticated()" type="button" onclick="location.href='/logout';" class="btn btn-dark me-2" id="logout">로그아웃</button>
  <button sec:authorize="!isAuthenticated()" type="button" onclick="location.href='/user/join';" class="btn btn-warning" id="join">회원가입</button>
  <button sec:authorize="isAuthenticated()" type="button" onclick="location.href='/user/modify';"class="btn btn-warning" id="modify">정보수정</button>
 </div>
  • 회원 정보 수정 요청 시 @AuthenticationPricipal을 사용, 저장된 UserDetails (UserSecurityDto) 을 받아와 정보 수정에 필요한 데이터를 가져옴
    @GetMapping("/modify")
    public void modifyGet(@AuthenticationPrincipal UserSecurityDto userSecurityDto, Model model) {

        UserModifyDto userModifyDto = userService.get(userSecurityDto.getUid());

        model.addAttribute("dto", userModifyDto);
    }

2. 결과

  • 로그인 페이지
  • 로그인하지 않았을 시 로그인 / 회원가입 노출
  • 회원 가입 페이지
  • 로그인하였을 경우 로그아웃 / 정보수정 노출
  • 회원 정보 수정 페이지
  • 회원 가입 시 비밀번호 암호화 되어 저장
  • 회원 정보 수정 시에도 비밀번호 암호화 되어 저장

3. 미흡한 점

  • 로그아웃 시 remember-me 관련 오류가 있어 일단 remember-me 기능을 꺼둔 상황
    (쿠키 값이 없는 경우, 있는 경우를 나눠서 로그아웃 처리를 해야할 것으로 보임)
profile
공부했던 내용들을 모아둔 창고입니다.

0개의 댓글