본문으로 건너뛰기

카카오 로그인

로그인하기

카카오 로그인하기를 이용해 회원가입, 로그인, 추가 동의내역 받기, 약관 동의시키기 등을 수행할 수 있습니다.

image

Usage

login() 함수를 호출해주면 바로 실행됩니다.

import { login } from '@react-native-kakao/user';

...

login()

인자

모든 인자는 optional입니다.

  • serviceTerms: 서비스 약관 선택해 동의 받기는 카카오 로그인 동의 화면에 포함할 서비스 약관을 지정하는 추가 기능입니다. 사용자의 서비스 가입 시나리오에 따라 앱에 등록된 서비스 약관 중 특정 서비스 약관을 지정해 동의받고자 할 때 사용합니다. 카카오 로그인 요청 시 serviceTerms 파라미터로 동의 화면에 포함할 서비스 약관 태그 목록을 지정합니다. 요청 시 [필수 동의]로 설정된 서비스 약관을 하나 이상 포함해야 동의 화면을 출력하고 사용자에게 동의받을 수 있습니다.
정보

카카오싱크를 도입한 서비스만 사용할 수 있는 기능입니다.

  • prompts: 로그인 과정을 플래그를 전달해 제어할 수 있습니다.

Login, Create, Cert, UnifyDaum, SelectAccount(Android only)string[]으로 전달할 수 있습니다.

각각이 의미하는 자세한 설명은 공식 문서를 참고해주세요.

정보

카카오톡이 아닌 카카오 계정으로 로그인이 시도될 때 전달됩니다.

  • scopes: 사용자에게 추가 동의를 받는 경우에 해당됩니다. 동의를 받아야 하는 항목들을 전달합니다.

자세한 내용은 공식 문서 를 참고해주세요.

me()의 함수의 xxxNeedsAgreement 속성들을 확인해 추가적으로 동의를 받아야 하는 항목을 얻을 수 있습니다.

scopes가 전달된다면 항상 카카오 계정으로 로그인하기가 실행됩니다.

  • useKakaoAccountLogin: 항상 카카오톡이 아닌 카카오 계정으로 로그인을 시도합니다.

  • nonce: ID 토큰 재생 공격을 방지하기 위한 검증 값입니다. 전달한 값이 발급되는 ID 토큰의 nonce claim에 포함되어 반환됩니다.

자세한 내용은 공식 문서를 참고해주세요.

정보

OpenID Connect를 활성화한 앱에서만 의미가 있습니다.

경고

다음과 같은 조건으로 사용한다면 에러를 던집니다.

  • useKakaoAccountLogin이 존재하지 않거나 false라면 promptsscopes를 전달할 수 없습니다.

카카오톡으로 로그인하는 기능엔 promptsscopes를 전달할 수 없게 되어있습니다(Native SDK에서).

  • scopes가 전달된다면 serviceTermsprompts를 전달할 수 없습니다.

추가 동의를 받는 경우 serviceTermsprompts를 같이 전달할 수 없게 되어있습니다(Native SDK에서).

응답

Promise로 토큰과 관련된 정보가 반환됩니다.

응답은 다음과 같습니다.

KakaoLoginToken
{
accessToken: string;
refreshToken: string;
tokenType?: string;
idToken?: string;
accessTokenExpiresAt: number; // unix
refreshTokenExpiresAt: number; // unix
accessTokenExpiresIn: number; // seconds
refreshTokenExpiresIn: number; // seconds
scopes: string[];
};

로그아웃하기

logout()으로 로그아웃 할 수 있습니다.

계정 연동 해제하기

unlink()로 계정 연동을 해제할 수 있습니다.

현재 로그인 상태인지 확인하기

isLogined()로 확인할 수 있습니다. 반환값은 Promise<boolean> 입니다.

카카오톡이 사용 가능한지 확인하기

isKakaoTalkLoginAvailable()로 확인할 수 있습니다. 반환값은 Promise<boolean> 입니다.