본문으로 건너뛰기

서비스 약관

serviceTerms()로 사용자가 동의한 서비스 약관을 조회할 수 있습니다. Android, iOS, 웹에서 result: 'app_service_terms'를 전달하면 사용자가 동의하지 않은 약관을 포함해 사용 설정된 모든 약관을 조회합니다. tags를 전달하면 등록된 특정 약관만 조회합니다.

공식 문서

카카오싱크를 사용하는 앱에서 로그인한 사용자에 대해 호출할 수 있습니다. 약관 동의 여부를 조회하며, 동의를 요청하거나 철회하지 않습니다.

사용법​

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

const agreedTerms = await serviceTerms();
const allTerms = await serviceTerms({ result: 'app_service_terms' });
const selectedTerms = await serviceTerms({
result: 'app_service_terms',
tags: ['service_2020_0218'],
});

예제의 태그를 앱에 등록된 약관 태그로 바꿔 사용합니다.

옵션타입동작
result'agreed_service_terms' | 'app_service_terms'기본값은 동의한 약관입니다. app_service_terms는 사용 설정된 모든 약관을 포함합니다.
tagsstring[]등록된 약관 태그로 조회 범위를 제한합니다. 웹에서는 JavaScript SDK가 요구하는 쉼표로 구분된 값으로 전달합니다.

응답​

Promise<KakaoServiceTerms[]>를 반환합니다. 요청이 성공했지만 응답에 약관 목록이 없으면 빈 배열을 반환합니다. 인증 오류가 발생하거나 등록되지 않은 태그를 전달하면 카카오 오류로 Promise를 거부합니다.

export type KakaoServiceTerms = {
tag: string;
agreedAt?: number;
agreed: boolean;
required: boolean;
revocable: boolean;
agreedBy?: 'KAUTH' | 'KAPI' | 'unknown';
};

agreedAt이 있으면 초 단위 Unix 타임스탬프입니다. app_service_terms로 조회한 약관도 같은 타입으로 반환하며, 각 약관의 agreed로 동의 여부를 확인할 수 있습니다.

agreedBy는 약관에 동의한 경로입니다. KAUTH는 카카오싱크 간편가입 동의 화면, KAPI는 그 밖의 경로를 뜻합니다. SDK가 인식하지 못한 값은 unknown으로 반환하고, 응답에 동의 경로가 없으면 이 필드를 생략합니다.

약관 동의 철회​

revokeServiceTerms(tags)로 Android, iOS, 웹에서 앱에 등록된 약관 중 revocable: true인 약관의 동의를 철회할 수 있습니다. 호출하면 사용자의 동의 상태가 바뀝니다. 필수 약관의 동의를 철회하기 전에 앱의 서비스 정책을 확인해야 합니다.

import { revokeServiceTerms, serviceTerms } from '@react-native-kakao/user';

const revokedTerms = await revokeServiceTerms(['optional_service_2020_0218']);
const currentTerms = await serviceTerms({
result: 'app_service_terms',
tags: ['optional_service_2020_0218'],
});

Promise<KakaoRevokedServiceTerms[]>를 반환하며 각 항목은 tag: string과 agreed: boolean을 갖습니다. 응답에 철회한 약관 목록이 없으면 빈 배열을 반환합니다. 인증 오류가 발생하거나 유효하지 않은 태그를 전달하면 카카오 오류로 Promise를 거부합니다.

공식 문서