[React Native] Kakao Login을 적용하자.

치치·2021년 5월 10일
1

React Native

목록 보기
4/7
post-thumbnail

1. 개발자 계정 및 앱 정보 등록

Kakao login을 적용하기 위해서 먼저 개발자 계정을 만들고 앱을 등록해야 한다.

카카오 개발자 사이트를 접속하여 회원가입 후 앱을 생성한다.

앱 정보를 등록하는 방법은 아래 사이트를 참고하자.
https://github.com/react-native-seoul/react-native-kakao-login
https://developers.kakao.com/docs/latest/ko/getting-started/app

계정 활성화
https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite


2. 라이브러리 설정

깃헙은 여기 참고하자.
https://github.com/react-native-seoul/react-native-kakao-login

정리하면 아래와 같다s

  1. npm install @react-native-seoul/kakao-login
  2. "./android/app/src/main/AndroidManifest.xml/"
    android:allowBackup="true" 으로 설정
  3. "./android/build.gradle"
allprojects 
   repositories {
       ...
       maven { url >'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
   }
}
  1. "./android/app/src/main/res/values/strings.xml"
    <string name="kakao_app_key">your_app_key</string> 추가

3. ios 프로젝트 설정

https://developers.kakao.com/docs/latest/ko/getting-started/sdk-ios-v1 페이지에서 아래 부분을 적용하자.

  • plist 설정
  • URL Scheme 설정
  • Legacy iOS SDK 불러오기

4. 실제 코드는 어떻게?

깃헙을 참고하자.

const signInWithKakao = async (): Promise<void> => {
  const token: KakaoOAuthToken = await login();

  setResult(JSON.stringify(token));
};

const signOutWithKakao = async (): Promise<void> => {
  const message = await logout();

  setResult(message);
};

const getProfile = async (): Promise<void> => {
  const profile: KakaoProfile = await getKakaoProfile();

  setResult(JSON.stringify(profile));
};

const unlinkKakao = async (): Promise<void> => {
  const message = await unlink();

  setResult(message);
};

5. 설정 과정에서 오류 해결

  • maven의 url (Unrecognized SSL message, plaintext connection?)
    -> 라이브러리는 http를 사용해야 된다.

  • gradle 버전에 문제가 있는 경우
    -> "android/build.gradle" 에서 buildscript→dependencies→classpath의 버젼은 3.6.0까지 올림
    classpath("com.android.tools.build:gradle:3.6.0"

  • AUTHORIZATION_FAILED: invalid android_key_hash or ios_bundle_id or web_site_url
    -> openssl로 키 해쉬 생성 시 문제가 된 것
    안드로이드의 경우 안드로이드 스튜디오의 플랫폼 폴더가 아니라 프로젝트의 android 폴더 아래에 있는 키를 참조하여 생성해야 한다.

profile
안녕하세요. 개발자입니다.

0개의 댓글