본문으로 건너뛰기

동의 내역

사용자 동의 내역을 조회하거나 철회하는 API입니다.

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

동의 내역 받기​

공식 문서

scopes(scopes?: string[])로 사용자 동의 항목을 조회할 수 있습니다.

조회할 항목 ID를 배열로 전달하면 Android, iOS, 웹 모두 해당 항목만 요청합니다. 인자를 생략하거나 빈 배열을 전달하면 전체 항목을 조회합니다. 요청이 성공했지만 목록이 없으면 빈 배열을 반환합니다.

응답은 Promise<KakaoScopeInfo[]>입니다.

export type KakaoScopeInfo = {
id: string;
agreed: boolean;
displayName: string;
revocable?: boolean | null;
using: boolean;
delegated?: boolean | null;
type: string;
};

예시​

await scopes(['profile_nickname']);

동의 내역 철회하기​

공식 문서

revokeScopes(scopes: string[])로 사용자 동의 항목을 철회할 수 있습니다.

사용자가 동의한 항목에 대해 동의를 철회합니다. 동의 내역 확인하기 API를 통해 조회한 동의항목 정보 중 동의 철회 가능 여부(revocable) 값이 true인 동의항목만 철회 가능합니다. 동의 철회가 불가능한 동의항목을 대상으로 요청한 경우 에러 응답을 받습니다.

철회할 동의항목의 ID는 scopes 값으로 지정하며, [내 애플리케이션] > [카카오 로그인] > [동의항목]의 ID를 참고합니다.

예시​

await revokeScopes(['account_email']);

revokeScopes()는 철회가 완료되면 undefined로 완료되는 Promise<void>를 반환합니다. 철회 직후 SDK가 반환한 동의 항목 목록이 필요하면 revokeScopesWithResult()를 사용합니다. 두 함수 모두 사용자의 실제 동의 상태를 바꿉니다.

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

const currentScopes = await revokeScopesWithResult(['account_email']);

Promise<KakaoScopeInfo[]>를 반환하며, 응답에 목록이 없으면 빈 배열을 반환합니다. 예제의 account_email을 철회하려면 조회 결과의 revocable이 true여야 합니다. 인증 오류나 철회할 수 없는 항목의 오류는 두 함수 모두 Promise를 거부합니다.