Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/main/java/com/example/oauthjwt/common/dto/GoogleUserInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.example.oauthjwt.common.dto;

import lombok.AllArgsConstructor;

import java.util.Map;

@AllArgsConstructor
public class GoogleUserInfo implements OAuth2UserInfo{

private Map<String, Object> attributes;

@Override
public String getProviderId() {
// Google의 고유 ID는 sub 필드에 존재
return attributes.get("sub").toString();
}

@Override
public String getProvider() {
return "google";
}

@Override
public String getName() {
// name 필드에서 사용자 이름 가져오기
return attributes.get("name").toString();
}
}
26 changes: 26 additions & 0 deletions src/main/java/com/example/oauthjwt/common/dto/NaverUserInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.example.oauthjwt.common.dto;

import lombok.AllArgsConstructor;

import java.util.Map;

@AllArgsConstructor
public class NaverUserInfo implements OAuth2UserInfo{

private Map<String, Object> attributes;

@Override
public String getProviderId() {
return attributes.get("id").toString();
}

@Override
public String getProvider() {
return "naver";
}

@Override
public String getName() {
return (String) ((Map) attributes.get("result")).get("nickname");
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.example.oauthjwt.oauth2.api;

import com.example.oauthjwt.common.dto.GoogleUserInfo;
import com.example.oauthjwt.common.dto.KakaoUserInfo;
import com.example.oauthjwt.common.dto.NaverUserInfo;
import com.example.oauthjwt.common.dto.OAuth2UserInfo;
import com.example.oauthjwt.oauth2.domain.entity.RefreshToken;
import com.example.oauthjwt.user.domain.entity.User;
Expand Down Expand Up @@ -60,6 +62,14 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
log.info("카카오 로그인 요청");
oAuth2UserInfo = new KakaoUserInfo(token.getPrincipal().getAttributes());
}
case "google" -> {
log.info("구글 로그인 요청");
oAuth2UserInfo = new GoogleUserInfo(token.getPrincipal().getAttributes());
}
case "naver" -> {
log.info("네이버 로그인 요청");
oAuth2UserInfo = new NaverUserInfo(token.getPrincipal().getAttributes());
}
}

// 정보 추출
Expand Down