서비스 약관
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는 사용 설정된 모든 약관을 포함합니다. |
tags | string[] | 등록된 약관 태그로 조회 범위를 제한합니다. 웹에서는 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를 거부합니다.