Spring Boot OAuth 2 Client 이해하기 2 Security 없이 카카오 로그인 구성

Spring Boot OAuth 2 Client 이해하기 2 Security 없이 카카오 로그인 구성

현재 개발하고자 하는 서비스에서 로그인한 유저가 새로운 가족이나 모임을 만들거나 기존의 가족이나 모임에 참여할 수 있도록 하는 기능을 만들게 되었습니다. 로그인과 똑같은 경우 Flutter 3.0 버전에 카카오 SDK가 정식으로 지원을 해준다고 해서 카카오 Flutter SDK를 활용했습니다. 새로운 모임,가족을 만드는 로직과 DB 접근을 위해 Spring Boot로 서버를 구축했습니다. 카카오 로그인은 kakao developers 페이지에 명확한 설명이 있습니다.

이를 따라한다면 충분히 구현이 가능할 것 같습니다. 카카오 로그인과 똑같은 경우 위의 링크에서 소개된 방법을 통해 구현해주었습니다.


imgCaption0
플랫폼 등록

플랫폼 등록

메뉴얼에 따라 android, ios, web을 등록해줍니다. Android ackage 명을 입력해야되는데 package명은 다음과 같은 곳에 명시되어 있습니다. androidappsrcmainAndroidManifest.xml androidappsrcmainkotlin패키지 명MainActivity. kt java androidappsrcdebugAndroidManifest.xml 저와 똑같은 경우 AndroidManifest.xml 파일에는 패키지명이 입력되어 있지 않았었고, kotlin 디렉토리 이후의 패키지명이나 MainActivity 파일에서 import 하고 있는 패키지 명에서 확인 할 수 있었습니다.

logout 기능 구현

사용자 관리 API 호출을 담당하는 클라이언트인 UserApi에 logout과 unlink가 있습니다. logout 메서드의 경우 요청 성공 시 로그아웃 처리된 사용자의 회원 번호를 받습니다. 또한, 성공 여부에 독립적으로 Flutter SDK에 저장된 토큰을 삭제합니다. 토큰 삭제 시 더 이상 해당 토큰 값을 이용해서 카카오 Api를 호출 할 수 없습니다. unlink 메서드의 경우 요청 성공 시 앱과 연결이 해제된 사용자의 회원 번호를 포함한 UserIdResponse 객체가 반환됩니다.

또한, logout처리가 함께 이루어집니다. UserApi의 unlink를 통해 구현하도록 하겠습니다.

본인은 인가코드만 프론트에서 받아 백엔드로 넘겨주는 로직을 생각했으나, 백엔드 팀원 선생님께서 프론트에서 인가 코드 획득 후 액세스 토큰까지 받아서 액세스 토큰을 백엔드로 전달해달라고 하셨습니다. 그래도 되는지는 아직까지 의문인 게 액세스 토큰을 프론트에서 받아서 가지고 있어도 되나하는 보안 이슈가 자꾸 머릿속을 나돌아 다님. 그나마 다행인 건 https로 통신해야만 되는 점. PWA때문에 프론트를 https로 배포를 하면서 겸사겸사 백엔드 측에 https로 요청을 드린 건 아무리 생각해도 잘한 것 같다.

법적으로 문제가 된다고 하면 백엔드 선생님께 로직 편집 요청을 드리겠는데 아는 바가 없어서 무지함의 죄다.

추가 설정

Android 아래 두 가지 사항을 Xcode에서 진행해줍니다. 앱 실행 허용 목록 설정을 위해 TARGET INFO Custom iOS Target Properties에서 LSApplicationQueriesSchemes 를 추가하고, 해당 키의 Item으로 kakaokompassauth와 kakaolink를 추가합니다. TARET INFO URL Types URL Schemes에 kakao앱 키를 입력해주면 됩니다.

ios 디렉토리를 Xcode로 실행한 뒤, Runner 더블선택 Info 탭 에서 위의 두 가지를 모두 설정할 수 있습니다.

그렇다면 정말 카카오 고객센터 메일 주소는?

카카오에서는 고객 문의는 따로 이메일로서 접수받지는 않고, 앞서 소개한 위 메뉴를 통해 접수하고 있는 것으로 보입니다. 위에서 1번 형식문의글 남김으로 문의 글을 남기자마자, 다음과 같은 접수 안내 메일이 답변을 받을 메일로 도착했습니다. 발신 전용 이메일이긴 하지만, 카카오 이메일 도메인을 확인할 수 있습니다. 바로 kakaocorp.com형식이죠. 앞서 받은 충격적인 사기 메일처럼 daum.net을 쓰지 않는다는 것입니다.

저는 벌써 충격적인 사기 메일을 두 번이나 받았습니다. 처음 받았을 때는 아무 생각이 없이 제가 알아서 카카오 계정 비밀 번호만 교환하고 끝냈고, 두 차례 받았을 때에는 이상한 생각이 들어 확인해보았습니다. 언뜻 보시면 자신의 카카오 계정 정보가 유출되어 우왕좌왕하면서, 사기 계정을 추가하고 문의글을 남길 수도 있겠다. 싶습니다. 피싱 사기가 나날이 증가하고 있습니다.

자주 묻는 질문

플랫폼 등록

메뉴얼에 따라 android, ios, web을 등록해줍니다. 좀 더 자세한 사항은 본문을 참고해 주세요.

logout 기능 구현

사용자 관리 API 호출을 담당하는 클라이언트인 UserApi에 logout과 unlink가 있습니다. 자세한 내용은 본문을 참고 해주시기 바랍니다.

추가 설정

Android 아래 두 가지 사항을 Xcode에서 진행해줍니다. 좀 더 자세한 사항은 본문을 참고하시기 바랍니다.