Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Naver 로그인 작업 완료 PR(ver.2) #10

Merged
merged 18 commits into from
Jul 5, 2024
Merged

Conversation

wambatcodeeee
Copy link
Contributor

@wambatcodeeee wambatcodeeee commented Jul 5, 2024

네이버 로그인 완성했습니다. 뭐라 크게 드릴 말씀은 없네요..
기존 카카오랑 크게 다른 점은 없는데, 몇 개 다른 점을 알림 차원에서 굳이굳이 말씀드리자면

  • 카카오는 카카오 자체 이메일이 존재하지 않기 때문에 저희 서버 측에서 임의의 이메일을 생성하여 DB에 저장합니다만(사실 심사 통과하면 가져올 수 있긴함), 네이버는 자체 이메일이 존재하기 때문에 API를 통해 네이버 이메일을 곧이곧대로 DB에 저장할 수 있었다는 점.
  • 카카오는 Rest API Key만 있으면 바로바로 통과통과인데, 네이버는 네이버 디벨로퍼스 Client ID Key 뿐만 아니라 별도의 Secret Key까지 있어야 인가 코드를 받을 수 있다는 점.

결론: 개인적인 의견으로 보안적인 면으로 보나, 개발편리 면으로 보나 네이버가 좀 더 우위인듯요..?

P.S 경아야 이제 구글 로그인 하면 됑

@GyungA
Copy link
Contributor

GyungA commented Jul 5, 2024

으아 고생했다 고마워요~! 네이버 메일이 가입한 이메일이랑 같지 않을 수 있다는 점 감안해야돼요링~ (연락처용 이메일을 따로 지정할 수 있어서, 중복 가능성이 있음) 구글 확인했어요🙆🏻‍♀️🥺

Copy link
Contributor

@GyungA GyungA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

집념의 웜뱃! 고생했습니당 👏🏻


public void kakaoSignUp(String kakaoUserId, String kakaoNickname){
String randomPassword = String.valueOf(UUID.randomUUID()).substring(0,8);
String generatedNickname = kakaoNickname + "#" + generateRandomPostfix();
String encodedPassword = passwordEncoder.encode(randomPassword);
String generatedNickname = kakaoNickname + "#" + randomGenerator.generateRandomPostfix();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

엇 아 이 로직 살아있었군요? 카카오에서 자동으로 해주는 줄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어차피 소셜 로그인은 저희 어스토리 로그인창에 아이디 비번을 쳐서 들어갈 필요도 없을 뿐더러, 그냥 그냥 UUID인채로 냅두면 극악의 확률로 뚫릴 수 있습니다. 그래서 디코드 과정은 없이 인코딩먼 해둔겁니다(2중 보안 느낌으로)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yungic 우리 로직에서 소셜로그인은 비밀번호를 입력하는 과정이 따로 없어서, DB에 형식적으로 랜덤 생성한 비밀번호를 넣고 있어요. 그런데 나름대로 랜덤값이라고 해도 비밀번호는 안전한 게 좋으니까 한 번 더 인코딩 거친 듯한..?

소셜로그인 시에도 회원가입 과정을 추가해서 비밀번호를 입력받는 방법도 있긴 한데 소셜로그인 유저한테 아이디 비밀번호가 따로 있는 게 더 헷갈릴 거 같고 번거로워질 거 같아서 이쪽 방법으로 왔슴당

정확한 답변은 누오가 해줄 거 같은디 초벌 한 번 해봤어유

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러니까 인코딩만 필요한 상황이라 랜덤 변수를 생성해주는거고 (보안상) 그걸 다시 인코딩 돌린거라는거지? 맞게 이해?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그런 셈이죠

@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "500", description = "Internal Server Error", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class)))
})
@RequestMapping(value = "/auth/logout/naver", method = {RequestMethod.GET, RequestMethod.POST})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오와 이렇게 하면 GET POST 동시에 되는구나아 근데 두가지 방향으로 요청이 와요?

Copy link
Contributor

@yungic yungic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

??????????????????

@wambatcodeeee wambatcodeeee merged commit b65f3ce into develop Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants