프로젝트 리팩터링 - 카카오 로그인 API -2

꾸준하게 달리기~·2023년 6월 13일
0
post-thumbnail

https://velog.io/@dlsrjsdl6505/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-%EC%B9%B4%EC%B9%B4%EC%98%A4-Oauth2-1

위 글과 이어서 작성합니다.
읽고 오시면 제가 뭐하는지 이해가 갈거에요!
지금부터 제가 할 내용은,
카카오 api를 통해 유저 정보를 가져왔고, 남은 내용은 해당 정보를 가공하여 내 Member 클래스로 변환시켜 저장하는 것.

캐스팅

그를 위해 카카오멤버서비스 클래스에서 카카오에서 가져온 정보를 가공하는 매서드인 saveUser을 아래와 같이 작성했다.
해당 설명은, 주석에 있어서 이해하기 어렵지 않을것이다.

위와 같이 작성한 후 컨트롤러에서 saveUser 매서드를 작동시켜보니깐, 아래와 같은 에러가 나왔다.

1번 에러

NullException 예외가 나오길래, 아 이거 DI문제구나 싶어서 보니 아니나다를까, 카카오멤버서비스를
카카오 컨트롤러에
DI해주지 않아서 당연히 못찾고 예외가 나온것이었다.

저렇게 작성하고도

2번에러


2번에러 해결 위해
로그에 나온대로
카카오멤버서비스의 jsonNode 객체에서
닉네임과 이메일을 뽑아서 사용하려니,
해당 객체에 닉네임과 이메일에 대한 내용이 없다!
라는 에러였고, 해결을 위해
jsonNode 프린트해서 보니깐
내가 생각한 카카오User의 정보가 아닌, 그 이전 단계의 정보인
아래사진 맨 아랫줄처럼 토큰관련 json이었다.

response 객체가 토큰관련 json,
response1 객체가 user 관련 json으로 할당해줬던 터라
아래와 같이 고쳤다.
respons -> response1

위와 같이 수정하고 나서 다시 서버를 돌려
카카오 로그인 페이지를 통해 로그인 하니,

위와 같이 카카오 정보가 잘 저장되는것을 확인할 수 있었다!

마치며

어렵지도 않은 내용 에러 나오지 말구, 한번 코딩할 떄 집중해서 해내자!

코드: https://github.com/ingeon2/webServiceproject-refactoring/tree/devBE%EC%9D%B4%EC%9D%B8%EA%B1%B4/server/src/main/java/com/main/server/global/auth/kakao

profile
반갑습니다~! 좋은하루 보내세요 :)

0개의 댓글