@GetMapping("/mybadge")
public String mybadge(@AuthenticationPrincipal MyUserDetails myUserDetails, Model model) {
MyPage에서 사용자의 배지를 띄우기 위해서는 user_id만 필요합니다.
@Getter
@RequiredArgsConstructor
public class MyUserDetails implements UserDetails {
private final User user;
MyUserDetails에서 user id 를 꺼내오기 위해서는 결국 db에 접근하여 모든 user 정보를 가져와야합니다.
Hibernate:
select
u1_0.user_id,
u1_0.active_status,
u1_0.birth,
u1_0.created_at,
u1_0.email,
u1_0.gender,
u1_0.is_email_verified,
u1_0.login_id,
u1_0.password,
u1_0.phone,
u1_0.profile_banner_image_url,
u1_0.profile_image_url,
u1_0.updated_at,
u1_0.user_name,
u1_0.user_type
from
tbl_user u1_0
where
u1_0.login_id=?
그래서 자주 사용되는 기본 정보, user_id나 user_name은 변수로 아예 설정해두는건 어떨까요?
@Getter
@RequiredArgsConstructor
public class MyUserDetails implements UserDetails {
private final User user;
private final Long userId;
private final Stirng userName;