안녕하세요. 싱크 관련 문의드립니다.
[302] 코드 요청을 했을 때
카카오 싱크에 이미 가입한 사람과 (가입창/동의창 뜨지 않음)
싱크 가입을 하고 넘어온 사람에 대한 응답 모두
[302]코드 응답을 통해서 넘어오는 것으로 확인했는데
혹시 이 두 케이스에 대한 확인방법을 구분 할 수 있나요?
[302]코드 응답에 대한 redirect_url 은 하나이고
기 가입자는 그대로 로그인을 시키고
싱크 가입을 하고 넘어온 사람은 추가로 필요한 체크로직이 있어서 구분값이 필요합니다.
(약관동의 api 를 통해 넘어오는 정보가 있다면 기 가입자라고 생각하면 될 것 같긴 합니다만
약관동의 api 를 받아올 때 access 토큰이 필요한데
[302] 코드 발급 요청/응답 이후 [POST] 사용자토큰발급 요청/토큰응답 을 통해 토큰을 발급 받으면
이미 싱크 가입이 완료된 사용자 이므로
의미가 없을 것 같아서요. )
추가로
정확히 어느 시점에 카카오에서 사용자 로그인을 시키는건지 궁금합니다.
flow chart 1~8번 안에서 알려주시면 이해가 빠르게 될 것 같습니다.
답변 부탁드립니다. 감사합니다.
@assbell
안녕하세요. 카카오 입니다.
카카오 싱크 개발 가이드를 참고하시면 도움이 될 것 같아요.
카카오 싱크를 통한 가입 시, 해당 유저가 서비스 약관에 동의 했는지 여부를 확인하실 수 있습니다.
-
서비스에서 카카오 동의창 요청
GET /oauth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type=code HTTP/1.1
Host: kauth.kakao.com
-
서비스로 CODE 전달
HTTP/1.1 302 Found
Content-Length: 0
Location: {redirect_uri}?code={authorize_code}
-
사용자 토큰 받기(AccessToken) 요청
POST /oauth/token HTTP/1.1
Host: kauth.kakao.com
Content-type: application/x-www-form-urlencoded;charset=utf-8
-
사용자의 서비스 약관 동의항목
curl -v -X GET https://kapi.kakao.com/v1/user/service/terms
-H "Authorization: Bearer ${access_token}"
-
서비스 약관조회 결과에 따라, 서비스에서 싱크가입 처리 완료
감사합니다.
안녕하세요.
카카오 싱크 가입창에서 가입 버튼을 클릭 하고 [302] 코드 응답이 넘어올 경우
- 기존 카카오 로그인을 통한 가입자의 싱크 가입자
(필수 동의항목이 추가 되어 싱크 가입창이 한번 더 뜬다고 가이드 받았습니다)
- 신규 싱크 가입자 (싱크 가입 동의)
- 싱크 기 가입자
동일한 [302] 코드 응답을 통해 값이 전달이 되는 것 같아서
위의 세 케이스에 대한 판별 방법을 문의드린 것이었습니다.
1,2,3 가입자는 알려주신대로 서비스 약관 동의항목에 동의를 했기 때문에
사용자의 서비스 약관 동의항목을 날렸을때 조회 결과에 값이 있겠지요.
정리해서 다시 질문하자면,
-
서비스에서 카카오 동의창 요청
case1-1) 카카오 로그인 가입자가 싱크 동의창에 동의 버튼 클릭 (필수 동의 항목 추가 되었기 때문에)
case1-2) 신규 가입자가 싱크 동의창에 가입버튼 클릭
case1-3) 싱크 기 가입자 동의창 skip
-
서비스로 code 전달
-> 이 때 [302]code 응답을 통해 세가지 case의 판별 방법이 궁금합니다.
-
사용자 토큰 받기 요청
감사합니다.
안녕하세요. 카카오 입니다.
case1-1) 카카오 로그인 가입자가 싱크 동의창에 동의 버튼 클릭 (필수 동의 항목 추가 되었기 때문에)
카카오의 필수 동의, 서비스의 필수 동의 항목 둘 중 어떠한 항못을 말씀하시는 것인지요?
카카오 필수 동의 항목이 추가되는 경우 기 가입자도 동의창이 새로 노출되지만
서비스의 필수 약관만 추가되는 경우에는, 기 가입자에게 동의창이 노출되지 않습니다
즉, 동의창의 노출 기준은 카카오 동의항목에 따라 결정되어요
[302]code 응답을 통해 세가지 case의 판별 방법이 궁금합니다.
로그인 code 는 사용자 토큰을 발급받기 위한, 임시 코드이며 이를 통해 분기처리를 할 수는 없으세요
카카오 싱크 로그인 이후, 서비스의 자체 약관 처리를 위해 문의하신것이 맞으시다면,
토큰 발급 후 “사용자의 서비스 약관 동의항목 조회 API” 를 호출하여,
해당 유저의 서비스 약관에 동의여부를 확인하시고, 서비스에서 자체적으로 처리해 주셔야 합니다.
감사합니다.
1개의 좋아요
안녕하세요. 답변 감사합니다.
-
case1-1) 은 카카오 필수 동의항목이 추가되는 경우입니다.
-
카카오 싱크 로그인 이후, 서비스의 자체 약관 처리를 위해 문의하신것이 맞으시다면,
토큰 발급 후 “사용자의 서비스 약관 동의항목 조회 API” 를 호출하여,
해당 유저가 서비스 약관에 동의여부를 확인하시고, 서비스에서 자체적으로 처리해 주셔야 합니다.
-> 약관동의항목의 동의여부는 [302]코드 응답의 code/error 값 여부를 통해 체크 가능하다고 답변 받은적이 있어서
동의항목 조회 api 를 통하지 않아도 될 것 같습니다. (맞지요??)
(그리고 1~3 모두 동의여부가 동의인 경우에 대해서 입니다.)
싱크 로그인 이후 case 1~3 별로 로직을 다르게 처리해야 하기 때문에
1.기존 카카오 로그인을 통한 가입자의 싱크 가입자
2.신규 싱크 가입자
3.싱크 기 가입자
를 구분할 수 있는 가능한 방법이 있는지 문의드렸습니다.
감사합니다.
안녕하세요.
2번 질문에 대해서는 아래와 같이 답변드린 적이 있는데요.
혹시 질문하신 부분이 아래 내용과 다른 내용인가요?