카테고리 없음

카카오 로그인 with React-Native

hiris 2024. 7. 8. 17:33

 

# react-native 활용하여 카카오 로그인 구축하기 

이번에 로그인 파트를 담당을 해서 다음과 같이 진행하게 됐다. 

( 왜 로그인 하겠다고 나서서 ...  ) 

일단 첫번째로 모듈을 다 설치 및 설정을 해줘야 한다. 

 

 

1. @react-native-seoul/kakao-login 설치

npm install @react-native-seoul/kakao-login

 

2. Native Module 설정 (Android)

 

android/build.gradle 파일을 열고 다음을 추가한다. 

allprojects {
    repositories {
        maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
    }
}

 

android/app/build.gradle 파일을 열고 다음을 추가한다. 

dependencies {
    implementation "com.kakao.sdk:v2-user:2.5.0" // 최신 버전을 사용하세요
}

 

android/app/src/main/AndroidManifest.xml 파일을 열고 다음을 추가한다. 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="YOUR_PACKAGE_NAME">
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:requestLegacyExternalStorage="true"
        ...>
        ...
        <meta-data android:name="com.kakao.sdk.AppKey" android:value="@string/kakao_app_key" />
        <meta-data android:name="com.kakao.sdk.KAKAO_CUSTOM_SCHEME" android:value="@string/kakao_custom_scheme" />
    </application>
</manifest>

 

android/app/src/main/res/values/strings.xml 파일을 열고 다음을 추가한다. 

<resources>
    <string name="kakao_app_key">YOUR_KAKAO_APP_KEY</string>
    <string name="kakao_custom_scheme">kakao{YOUR_KAKAO_APP_KEY}</string>
</resources>

 

 

참고로 내 코드는 다음과 같다. 

 

import React from 'react';
import { View, Text, StyleSheet, Image, TouchableOpacity } from 'react-native';
import { KakaoOAuthToken, KakaoProfile, login, logout, getProfile } from '@react-native-seoul/kakao-login';

export default function Login() {
  const handleKakaoLogin = async () => {
    try {
      const token: KakaoOAuthToken = await login();
      console.log(token);
      const profile: KakaoProfile = await getProfile();
      console.log(profile);
      // 로그인 성공 시 필요한 작업 추가
    } catch (error) {
      console.error('Login failed', error);
    }
  };

  return (
    <View style={styles.screenContainer}>
      <View style={styles.textContainer}>
        <Text style={styles.title}>보안을 고려한</Text>
        <Text style={styles.title}>의료 관리 데이터 플랫폼</Text>
        <Text style={styles.subText}>
          누구나, 쉽게 자신의 의료 데이터를 관리할 수 있어요.
        </Text>
        <Image
          source={require('../../assets/images/icon/Mainicon.png')}
          style={styles.image}
        />
      </View>
      <TouchableOpacity style={styles.kakaoButton} onPress={handleKakaoLogin}>
        <Text style={styles.kakaoButtonText}>카카오 로그인</Text>
      </TouchableOpacity>
    </View>
  );
}

 

다들 도움이 되길 바라며..