[기능] 스프링 시큐리티와 구글 로그인 구현(2) - 네이버 카카오 추가 + OAuth2 설명 보충

SeoYehJoon·2024년 9월 25일
0

웹 개인공부

목록 보기
15/22
post-thumbnail

https://velog.io/@holy38/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0%EC%99%80-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84
-->일반 로그인과 구글 로그인 구현했던 글

https://chb2005.tistory.com/183
-->구글뿐만 아니라 카카오, 네이버, 페이스북 로그인 가이드

https://chb2005.tistory.com/183
-->어플리케이션을 멤버 정보를 제공해주는 각 소셜 사이트에 등록(InpaDev님 티스토리)




OAuth2 인증절차에 관한 부가설명자료 두개


유용한 짤을 찾아 Security두번째 글인 여기에 붙여놓겠다.
위 두사진을 대조해보면 흐름을 파악할 수 있다.
그럼이제 본격적인 기능 구현을 들어가보자.








PrincipalOauth2UserService 변경점


위 사진에서 보듯 OAuth2UserInfo 라는 인터페이스를 만듦으로서 일관된 방식으로 데이터를 받고 DB에 저장할 수 있다.

OAuth2UserInfo

GoogleUserInfo

KakaoUserInfo


위 세종류의 OAuth2UserInfo 구현체들을 보면 똑같이 이름을 가져오는 함수라도
1. 구글은 (String) attributes.get("name");
2. 카카오는 (String) ((Map) attributes.get("properties")).get("nickname");
3. 네이버는 (String) attributes.get("name");
이렇게 제각각으로 받아온다 이걸 Service에서 이용할때 제각각 다른방식(위3가지방식)을 기억할 필요없이 그냥
이렇게 받아준다면 편하지 않겠는가?








네이버 로그인 실행

profile
책, 블로그 내용을 그대로 재정리하는 것은 가장 효율적인 시간 낭비 방법이다. 벨로그에 글을 쓸때는 직접 문제를 해결한 과정을 스크린샷을 이용해 정리하거나, 개념을 정리할때는 최소2,3개소스에서 이해한 지식을 정리한다.

0개의 댓글