페이지 이동경로
  • 문서>

약관 선택해 동의 받기

약관 선택해 동의 받기는 사용자가 동의하지 않은 약관을 선택해 로그인 시 동의를 구할 수 있게 해주는 기능입니다. 카카오 로그인의 인증 코드 받기 단계에서 추가 파라미터를 사용해 기존 가입 여부와 관계 없이 특정 서비스 약관의 동의를 요청할 수 있습니다.

이 기능은 크게 두 가지 상황에서 유용합니다.

  • 하나의 애플리케이션(이하 앱)을 여러 서비스에 사용하는 경우
  • 카카오싱크 서비스에 새로운 필수 약관이 추가된 경우

여러 서비스에서 동일한 회원 체계를 사용하는 멤버십(Membership) 등을 위해 하나의 앱으로 카카오싱크를 이용하는 경우가 있습니다. 이 때, 각각 요구하는 약관 종류가 다를 수 있습니다. 앱 정보에 모든 서비스에 필요한 약관을 등록한 후, 약관 선택해 동의 받기 기능으로 사용자가 각 서비스에 로그인할 때 필요한 약관들만 동의 받을 수 있습니다.

사용자가 한 번 카카오싱크 서비스에 로그인하면서 동의 과정을 거쳤다면, 새로운 필수 약관이 추가되더라도 동의 화면이 다시 나타나지 않습니다. 따라서 필수 약관이 추가되었다면, 사용자 로그인 시 동의한 약관 확인하기를 호출해 어떤 항목이 부족한지 비교하고, 추가 동의 받아야할 약관이 있을 때 약관 선택해 동의 받기 기능을 사용합니다. 동의 받을 약관은 카카오싱크 신청 시 등록했던 태그(tag)로 선택합니다.

이 기능을 사용해도 사용자가 이미 동의한 약관은 동의 화면이 다시 뜨지 않습니다. 필수가 아닌 선택 약관만으로 요청된 경우에도 동의 화면이 나타나지 않는 점에 유의합니다.

주의사항 약관 선택해 동의 받기를 위해 추가 파라미터를 사용한 경우, 동의 받을 약관 태그 값이 비어 있으면 모든 서비스 약관을 노출하지 않습니다. 이 상태로 간편가입한 사용자는 모든 약관에 동의하지 않고 로그인하게 돼 서비스 이용에 문제가 생길 수 있습니다. 따라서 이 기능은 충분한 테스트를 거쳐 실제 서비스에 반영해야 합니다.

Web

  • Sample
Kakao.Auth.authorize({
 redirectUri: 'http://developers.kakao.com/kakaoLogin.jsp',
 serviceTerms: 'tag1,tag2'
});
  • Param
Key Type Description Required
redirectUri String 인증코드를 받을 URI O
serviceTerms Sting 동의 받을 약관 태그, 쉼표(,)로 묶어 하나의 문자열로 전달 O

JavaScript SDK로 요청하려면 웹 페이지에 카카오 SDK를 import하고, 사용자가 로그인한 상태에서 아래와 같이 요청합니다. 마찬가지로 serviceTerms 값은 동의 받을 약관의 태그들을 하나의 문자열(String)로 모아 담아야 합니다.

Response

  • Sample
HTTP/1.1 302 Found
Content-Length: 0
Location: {redirect_uri}?code={authorize_code}

인증 코드 받기 API와 동일한 응답을 받습니다. 로그인 시 선택했던 서비스 약관만으로 구성된 동의 화면이 뜬다면 성공입니다.

iOS

Request

  • Sample
    // 로그인 요청에 추가할 파라미터
    var parameters: [String: String] = [:]

    // service_terms추가
    // ‘,’ 로 구분된 태그 문자열 ex) “tag1, tag2”
    parameters[KOSessionExtraServiceTermsParameterKey] = <#serviceTermsTags#>

    KOSession.shared()?.open(completionHandler: { (error) in
        // 로그인 콜백 처리
        <#code#>
    }, parameters: parameters)

iOS에서는 예제와 같이 parameters 선언 후, 원하는 약관의 태그들을 담아 인증 코드 받기 요청에 사용합니다.

Response

로그인 시 선택했던 서비스 약관만으로 구성된 동의 화면이 뜬다면 성공입니다.

Android

Request

  • Sample
    import com.kakao.auth.StringSet;

     // 로그인 요청에 추가할 파라미터
    Map<String, String> parameters = new HashMap<>();

    // service_terms추가
    // ‘,’ 로 구분된 태그 문자열 ex) “tag1, tag2”
    parameters.put(StringSet.service_terms, “tag1,tag2”);
    Session.getCurrentSession().open(AuthType.KAKAO_TALK, LoginActivity.this, parameters);

선택한 약관 태그들을 인증 코드 받기 요청 시 함께 넣어야 합니다. 예제를 참고해 원하는 약관의 태그들을 하나의 문자열(String, “tag1,tag2”)에 쉼표(,)로 구분해 담은 추가 파라미터를 구성해 사용합니다.

Response

로그인 시 선택했던 서비스 약관만으로 구성된 동의 화면이 뜬다면 성공입니다.