싱크 가입자/기가입자 관련 문의 드립니다

안녕하세요. 싱크 관련 문의드립니다.

[302] 코드 요청을 했을 때
카카오 싱크에 이미 가입한 사람과 (가입창/동의창 뜨지 않음)
싱크 가입을 하고 넘어온 사람에 대한 응답 모두
[302]코드 응답을 통해서 넘어오는 것으로 확인했는데
혹시 이 두 케이스에 대한 확인방법을 구분 할 수 있나요?

[302]코드 응답에 대한 redirect_url 은 하나이고
기 가입자는 그대로 로그인을 시키고
싱크 가입을 하고 넘어온 사람은 추가로 필요한 체크로직이 있어서 구분값이 필요합니다.

(약관동의 api 를 통해 넘어오는 정보가 있다면 기 가입자라고 생각하면 될 것 같긴 합니다만
약관동의 api 를 받아올 때 access 토큰이 필요한데
[302] 코드 발급 요청/응답 이후 [POST] 사용자토큰발급 요청/토큰응답 을 통해 토큰을 발급 받으면
이미 싱크 가입이 완료된 사용자 이므로
의미가 없을 것 같아서요. )

추가로
정확히 어느 시점에 카카오에서 사용자 로그인을 시키는건지 궁금합니다.
flow chart 1~8번 안에서 알려주시면 이해가 빠르게 될 것 같습니다.

답변 부탁드립니다. 감사합니다.

@assbell
안녕하세요. 카카오 입니다.

카카오 싱크 개발 가이드를 참고하시면 도움이 될 것 같아요.
카카오 싱크를 통한 가입 시, 해당 유저가 서비스 약관에 동의 했는지 여부를 확인하실 수 있습니다.

  1. 서비스에서 카카오 동의창 요청

    GET /oauth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type=code HTTP/1.1
    Host: kauth.kakao.com
    
  2. 서비스로 CODE 전달

    HTTP/1.1 302 Found
    Content-Length: 0
    Location: {redirect_uri}?code={authorize_code}
    
  3. 사용자 토큰 받기(AccessToken) 요청

    POST /oauth/token HTTP/1.1
    Host: kauth.kakao.com
    Content-type: application/x-www-form-urlencoded;charset=utf-8
    
  4. 사용자의 서비스 약관 동의항목

    curl -v -X GET https://kapi.kakao.com/v1/user/service/terms
    -H "Authorization: Bearer ${access_token}"
    
  5. 서비스 약관조회 결과에 따라, 서비스에서 싱크가입 처리 완료

감사합니다.

안녕하세요.

카카오 싱크 가입창에서 가입 버튼을 클릭 하고 [302] 코드 응답이 넘어올 경우

  1. 기존 카카오 로그인을 통한 가입자의 싱크 가입자
    (필수 동의항목이 추가 되어 싱크 가입창이 한번 더 뜬다고 가이드 받았습니다)
  2. 신규 싱크 가입자 (싱크 가입 동의)
  3. 싱크 기 가입자

동일한 [302] 코드 응답을 통해 값이 전달이 되는 것 같아서
위의 세 케이스에 대한 판별 방법을 문의드린 것이었습니다.

1,2,3 가입자는 알려주신대로 서비스 약관 동의항목에 동의를 했기 때문에
사용자의 서비스 약관 동의항목을 날렸을때 조회 결과에 값이 있겠지요.

정리해서 다시 질문하자면,

  1. 서비스에서 카카오 동의창 요청
    case1-1) 카카오 로그인 가입자가 싱크 동의창에 동의 버튼 클릭 (필수 동의 항목 추가 되었기 때문에)
    case1-2) 신규 가입자가 싱크 동의창에 가입버튼 클릭
    case1-3) 싱크 기 가입자 동의창 skip

  2. 서비스로 code 전달
    -> 이 때 [302]code 응답을 통해 세가지 case의 판별 방법이 궁금합니다.

  3. 사용자 토큰 받기 요청

감사합니다.

안녕하세요. 카카오 입니다.

case1-1) 카카오 로그인 가입자가 싱크 동의창에 동의 버튼 클릭 (필수 동의 항목 추가 되었기 때문에)

카카오의 필수 동의, 서비스의 필수 동의 항목 둘 중 어떠한 항못을 말씀하시는 것인지요?

카카오 필수 동의 항목이 추가되는 경우 기 가입자도 동의창이 새로 노출되지만
서비스의 필수 약관만 추가되는 경우에는, 기 가입자에게 동의창이 노출되지 않습니다
즉, 동의창의 노출 기준은 카카오 동의항목에 따라 결정되어요

[302]code 응답을 통해 세가지 case의 판별 방법이 궁금합니다.

로그인 code 는 사용자 토큰을 발급받기 위한, 임시 코드이며 이를 통해 분기처리를 할 수는 없으세요

카카오 싱크 로그인 이후, 서비스의 자체 약관 처리를 위해 문의하신것이 맞으시다면,
토큰 발급 후 “사용자의 서비스 약관 동의항목 조회 API” 를 호출하여,
해당 유저의 서비스 약관에 동의여부를 확인하시고, 서비스에서 자체적으로 처리해 주셔야 합니다.

감사합니다.

1개의 좋아요

안녕하세요. 답변 감사합니다.

case1-1) 은 카카오 필수 동의항목이 추가되는 경우입니다.

카카오 싱크 로그인 이후, 서비스의 자체 약관 처리를 위해 문의하신것이 맞으시다면,
토큰 발급 후 “사용자의 서비스 약관 동의항목 조회 API” 를 호출하여,
해당 유저가 서비스 약관에 동의여부를 확인하시고, 서비스에서 자체적으로 처리해 주셔야 합니다.

-> 약관동의항목의 동의여부는 [302]코드 응답의 code/error 값 여부를 통해 체크 가능하다고 답변 받은적이 있어서
동의항목 조회 api 를 통하지 않아도 될 것 같습니다. (맞지요??)
(그리고 1~3 모두 동의여부가 동의인 경우에 대해서 입니다.)

싱크 로그인 이후 case 1~3 별로 로직을 다르게 처리해야 하기 때문에

1.기존 카카오 로그인을 통한 가입자의 싱크 가입자
2.신규 싱크 가입자
3.싱크 기 가입자

를 구분할 수 있는 가능한 방법이 있는지 문의드렸습니다.

감사합니다.

안녕하세요.
2번 질문에 대해서는 아래와 같이 답변드린 적이 있는데요.
혹시 질문하신 부분이 아래 내용과 다른 내용인가요?