Skip to content

Commit 46dfb7d

Browse files
committed
github, kakao 쇼설 로그인 수정
1 parent 2205c52 commit 46dfb7d

File tree

3 files changed

+11
-25
lines changed

3 files changed

+11
-25
lines changed

src/main/java/codeview/main/auth/controller/OAuth2Controller.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@ public String googleCallback(@AuthenticationPrincipal OAuth2User principal, Mode
1717

1818
@GetMapping("/login/oauth2/code/github")
1919
public String githubCallback(@AuthenticationPrincipal OAuth2User principal, Model model) {
20-
model.addAttribute("name", principal.getAttribute("name"));
20+
model.addAttribute("name", principal.getAttribute("login"));
2121
return "home";
2222
}
2323

24-
// @GetMapping("/login/oauth2/code/kakao")
25-
// public String kakaoCallback(@AuthenticationPrincipal OAuth2User principal, Model model) {
26-
// model.addAttribute("name", principal.getAttribute("nickname"));
27-
// return "home";
28-
// }
24+
@GetMapping("/login/oauth2/code/kakao")
25+
public String kakaoCallback(@AuthenticationPrincipal OAuth2User principal, Model model) {
26+
model.addAttribute("name", principal.getAttribute("nickname"));
27+
return "home";
28+
}
2929
}
30-

src/main/java/codeview/main/auth/dto/OAuth2UserInfo.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,11 @@ private static OAuth2UserInfo ofGoogle(Map<String, Object> attributes) {
3636
}
3737

3838
private static OAuth2UserInfo ofKakao(Map<String, Object> attributes) {
39-
Map<String, Object> account = (Map<String, Object>) attributes.get("kakao_account");
40-
Map<String, Object> profile = (Map<String, Object>) account.get("profile");
39+
Map<String, Object> kakaoAccount = (Map<String, Object>) attributes.get("kakao_account");
40+
Map<String, Object> profile = (Map<String, Object>) kakaoAccount.get("profile");
4141

4242
return OAuth2UserInfo.builder()
4343
.name((String) profile.get("nickname"))
44-
.email((String) account.get("email"))
4544
.profile((String) profile.get("profile_image_url"))
4645
.build();
4746
}
@@ -57,7 +56,7 @@ private static OAuth2UserInfo ofGithub(Map<String, Object> attributes) {
5756
public Member toEntity() {
5857
return Member.builder()
5958
.name(name)
60-
.email(email)
59+
.email(email != null ? email : name + "@kakao.com")
6160
.profile(profile)
6261
.memberKey(KeyGenerator.generateKey())
6362
.role(Member.Role.ROLE_USER)

src/main/java/codeview/main/auth/service/CustomOAuth2UserService.java

+2-14
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,11 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2Authentic
3333

3434
OAuth2UserInfo oAuth2UserInfo = OAuth2UserInfo.of(registrationId, oAuth2UserAttributes);
3535

36-
// 이메일이 없는 경우 처리
37-
Optional<Member> memberOptional = Optional.empty();
38-
if (oAuth2UserInfo.getEmail() != null) {
39-
memberOptional = memberRepository.findByEmail(oAuth2UserInfo.getEmail());
40-
}
41-
36+
Optional<Member> memberOptional = memberRepository.findByEmail(oAuth2UserInfo.getEmail());
4237
Member member;
4338
if (memberOptional.isPresent()) {
4439
member = memberOptional.get();
4540
} else {
46-
// 이메일이 없거나 기존 회원이 아닌 경우 새로 저장
4741
member = getOrSave(oAuth2UserInfo);
4842
}
4943

@@ -55,15 +49,9 @@ private Member getOrSave(OAuth2UserInfo oAuth2UserInfo) {
5549
member.setName(oAuth2UserInfo.getName());
5650
member.setProfile(oAuth2UserInfo.getProfile());
5751

58-
if (oAuth2UserInfo.getEmail() != null) {
59-
member.setEmail(oAuth2UserInfo.getEmail());
60-
} else {
61-
// 이메일이 없는 경우 다른 방법으로 식별자를 생성 (예: OAuth 제공자의 고유 ID 사용)
62-
member.setEmail(oAuth2UserInfo.getName() + "@example.com");
63-
}
52+
member.setEmail(oAuth2UserInfo.getName() + "@kakao.com");
6453

6554
member.setRole(Member.Role.ROLE_USER);
66-
6755
return memberRepository.save(member);
6856
}
6957
}

0 commit comments

Comments
 (0)