KIMJINOH97 / Hotplace-map

졸업프로젝트를 위한 레포지토리
1 stars 1 forks source link

Feature back oauth2 #98

Closed KIMJINOH97 closed 2 years ago

KIMJINOH97 commented 2 years ago

e64b10f, 9bd1a21 (OAtuh2Attribute 객체 관련)

각 SNS에서 반환해주는 값인 Map<String, Object> attribute에서 우리가 필요한 값들을 정의해 놓은 객체.

Naver, Kakao 두 곳에서 반환해주는 api 스펙이 다르기 때문에 각각 생성자를 구현 해줌. -> static method 인 of 에서 registrationId를 통해 구분.

9bd1a21 : (String)을 통해 type casting을 해주기 보다는 정적 매소드를 통해 변경. providerId도 kakao, naver 다른 변수에 저장되어 있기 때문에 따로 파싱하여 저장.

77a4f04 (CustomOAuth2UserService)

SNS에서 받아오는 공통 속성들을 OAuth2Attribute 객체에 담음. 기존 Service에서 파싱했던 로직을 OAuth2Attribute 객체의 생성자에 위임.

4ccff12, fd5563d

CientRegistration.Builder로 작성했던 코드 -> .yml 설정으로 바꿔 줬음.

54e509f

처음 로직 -> oAuth2User 객체를 이용해서 getName() 매소드로 providerId 를 가져왔음. 하지만, kakao와 naver 각각 다른 값이 담겨오기 때문에 OAuth2User 객체를 상속받은 PrincipalDetails 객체를 구현해 해당 객체에서 providerId를 가져올 수 있게 구현함.

d5518d2 (OAuth2User 상속 받은 PrincipalDetails 객체)

handler에서 활용하기 위해 생성

d24aa4c

mockMvc를 활용해 user/info 요청 테스트

KIMJINOH97 commented 2 years ago

인터페이스로 따로 빼서 Kakao~ Naver~ 객체 따로 만드는 방법도 있는데 생성자로 따로 빼는 방법도 찾아보니깐 있어서 이렇게 구현해 봄. 혹시 단점 있으면 피드백 좀