카카오 로그인 구현은 완료되었고
redirect 설정과 header에 일반 로그인 사용자의 이름을 나타내던 곳에
카카오 로그인 사용자의 이름을 나타내는 것을 구현해야한다.
어제는 return에 redirect를 설정하면 오류가 났었는데
조금 고민해보니 내가 방식을 잘못 썼다는게 보였다
return "/home/home-list-view";
이런식으로 쓰고 있으니 오류가 나고있었던 거였다..
kakaoController에서 return 부분을 아래처럼 수정해주었다
if (originUserEntity.isPresent()) { // 이미 가입된 회원인 경우
// 해당 회원으로 로그인 처리
System.out.println("기존 회원입니다-----------------");
UserEntity loggedInUser = originUserEntity.get();
session.setAttribute("userId", loggedInUser.getId());
session.setAttribute("userName", loggedInUser.getName());
session.setAttribute("userLoginId", loggedInUser.getLoginId());
// 로그인 성공 메시지 반환
return "redirect:/home/home-list-view";
} else { // 비가입자인 경우
// 회원가입 처리
userBO.addKakaoUser(kakaoUser);
// 회원가입 완료 메시지 반환
return "redirect:/home/home-list-view";
}
그리고 header의 메뉴에 사용자 이름을 나타내는 것은
처음에는 일반 로그인 사용자와 카카오 로그인 사용자를 따로 다룬다고 생각해서
메뉴의 'ㅇㅇㅇ님 안녕하세요'를 구현할 때 따로 코드를 작성했는데
user의 테이블에 일반사용자와 카카오 로그인 사용자가 함께 저장되니 굳이 그럴 필요가 없었다
그래서 일단 로그인 후 나타나는 문구는 아래처럼 작성했고
<%--로그인 정보 --%>
<div class="d-flex justify-content-end pt-2 mr-4">
<c:if test="${not empty userName}">
<span>${userName}님 안녕하세요!</span>
<a href="/user/sign-out" class="ml-2">로그아웃</a>
</c:if>
<c:if test="${empty userName}">
<a href="/user/sign-in-view" class="menu-login text-white">로그인</a>
</c:if>
</div>
다만 카카오 로그인 사용자는 카카오 로그아웃을 구현할 예정이라서
로그아웃 부분만 따로 구현해주면 될것같다