#8 리액트네이티브 스프링부트(Spring Boot) JWT 카카오 소셜 로그인 구현

#8 리액트네이티브 + 스프링부트(Spring Boot) + JWT 카카오 소셜 로그인 구현

카카오 로그인도 위와 같이 에러가 떴다. 해당 부분은 우선적으로 프론트엔드에서 생긴 문제로 보여서 리액트 코드를 다시 살펴보았습니다. 성공적으로 한 kakao 로그인까지 시켰지만 기존에 프로젝트를 진행할 때, 어떠한 이유인지 로그인에 성공시 아이디 계정을 랜덤한 숫자로 지정해서 응답하는 것을 확인할 있습니다. 해당 부분 로직이 어디에서 전개되는지 찾아보니, 프론트엔드에서 액세스 토큰을 받아서, 그것을 kakao로 넘겨 검증한 후의 단계에서 벌어진 일이었다.

콘솔로그를 찍어보니 데이터가 object임을 알 수 있었어요.


imgCaption0
번외 자바스크립트 SDK 사용하기

번외 자바스크립트 SDK 사용하기

자바스크립트 SDK를 사용할 경우 문서를 참고하면 됩니다. 나는 처음에 이 방안으로 구현했는데 이렇게 처리할 경우 KakaoTalk이라는 한 단계를 더 거쳐야 하기 때문에 좀 더 간편한 REST API 방식으로 교체하게 되었습니다. 교체하기 전까지의 코드를 조금 남겨봅니다.

index.html 파일의 에 아래의 script를 추가해 SDK를 설치합니다. Kakao.init()에 들어갈 자바스크립트 키는 내 애플리케이션의 앱 키에서 가져오면 됩니다.

작업 설정

Kakao iOS SDK를 모두 설치했으면 이제 작업 설정을 해야합니다. 작업 설정은 Firebase Authentication을 연동하기 위해 했던 과정과 비슷합니다. 위 사진에서 확인할 것은 총 두가지입니다. 1. 앱 실행 용인 목록을 설정해야합니다. 이 설정은 소비자 정보 보호를 위한 애플의 정책에 따라 필요한 과정입니다. Info Custom iOS Target Properties에 Queried URL Schemes를 추가하고, 를 눌러 하위 계층인 Item 0, Item 1을 추가하고 해당 키의 값으로 kakaokompassauth, kakaolink를 입력합니다.

2. URL Types 추가해야합니다.

카카오톡 로그인 Firebase Authentication 연동

앞서 게시글 맨 처음에 카카오 로그인과 Firebase Authentication 연동을 위해서 다음과 같은 절차가 진행된다고 했다. 카카오톡 로그인 Firebase Authentication 이메일 비밀번호 방안으로 카카오 이메일 계정 등록 Firebase Authentication에 카카오 이메일 계정으로 로그인 따라서 과거 FirebaseAuthentication의 방법 중 이메일 / 비밀번호 방안으로 로그인하는 함수 emailAuthSignUp를 수정해줄 필요가 있습니다.

최초 로그인이라면 정상적으로 Auth.auth.createUser 함수가 실행되어 Firebase Authentication에 계정 등록이 되고 바로 completion의 emailAuthSignIn 함수가 실행될 것입니다.

권위 증명 POAproof of Athority

담보 같은 느낌. 보상을 받기 위해 암호화 토큰을 스테이킹예치하고 예치한 양애 비례한 퍼센트확률로 채굴 권한을 받는다. 확률은 스테이키한 토큰의 양에 비례합니다. 비잔틴 결함의 이론적인 위협은 있습니다. 팀을 구성해서 네트워크를 방해하는 경우 환경 친화적 전력소비를 줄일 있습니다. 권위 증명 방식은 권위 있는 기관에서 조건에 맞는 노드를 증명해서 이들간의 합의를 성공하는 방식입니다.

두나무 블록체인 서비스DBS는 권위 증명 계획을 사용합니다. ) 네트워크에 참여한 멤버들한테 연결망 운영에 참여할 권리를 주고 전원이 해당 권한을 위임에 투표를 진행합니다.

슈팅 구글링 스택오버플로우

검색 결과, 해당 컬렉션 User의 도큐먼트를 식별하는 key로 id말고 email이 추가로 설정되어 같은 이메일이면 key가 중복되어 에러가 생겨나는 것으로 밝혀졌다. key로는 id로도 충분하므로 email1 키를 삭제했다. 그러니 정상적으로 로그인이 되었습니다. 사실 이렇게 하면 같은 전자 메일로 서로 다른 계정을 갖는 로직이 전개되는데, 생각해보시면 다른 사이트에서는 중복되는 전자 메일로 로그인하면 과거 이메일과 같은 계정으로 처리합니다.

근데 이 프로젝트에서는 굳이 그럴 필요가 있을까? 한 유저가 단 하나의 계정만 갖고 있는 것보다. 그래도 기존, 구글, 카카오 이렇게 3개의 계정을 가지는 게 소비자 입장에서 더 좋지 않을까 하는 생각이 들었다. 이 부분은 비즈니스적인 측면이라 좀 더 고민해봐야겠다.

자주 묻는 질문

번외 자바스크립트 SDK

자바스크립트 SDK를 사용할 경우 문서를 참고하면 됩니다. 좀 더 구체적인 사항은 본문을 참고해 주세요.

작업 설정

Kakao iOS SDK를 모두 설치했으면 이제 작업 설정을 해야합니다. 더 알고싶으시면 본문을 클릭해주세요.

카카오톡 로그인 Firebase Authentication

앞서 게시글 맨 처음에 카카오 로그인과 Firebase Authentication 연동을 위해서 다음과 같은 절차가 진행된다고 했다. 궁금한 내용은 본문을 참고하시기 바랍니다.