본문 바로가기
Web/Kakao developers

[2021.03.17] 인턴 +16 카카오 로그인(REST API) - 정리 완료

by injekim97 2021. 3. 17.
반응형

[2021.03.17] 인턴 +16  카카오 로그인(REST API) - 정리 완료

 

 

 

developers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

시작하기 전에

-> REST API를 사용한 카카오 로그인은 PC 및 모바일 웹에서 카카오 로그인 구현 시 적합한 방식입니다. REST API 카카오 로그인은 인가 코드 받기, 토큰 받기의 두 단계를 거칩니다. 먼저 인가 코드를 받고, 그 인가 코드로 토큰을 요청해야 합니다. 로그인의 세부 절차는 이해하기 > 로그인을 참고합니다.

 

-> REST API를 사용한 카카오 로그인은 인가 코드 요청 단계에서 클라이언트(Client)에 카카오 계정 정보 또는 카카오톡을 통해 사용자를 인증하는 과정을 거칩니다. 이후 동의 화면을 출력하고 사용자로부터 제삼자 정보제공 등의 동의를 받아 인가 코드를 발급합니다.

 

-> 모바일 웹 환경에서는 사용자가 카카오 계정 ID와 비밀번호를 입력하지 않고도 카카오톡을 통해 인증을 받아 간편하게 로그인할 수 있는 간편 로그인을 사용할 수 있습니다. 인가 코드 받기 단계를 JavaScript SDK의 Kakao.Auth.authorize 함수로 요청하는 방식입니다. 사용자가 클라이언트에 이미 카카오 계정으로 로그인한 상태라면 다시 계정 정보나 카카오톡으로 로그인을 요청하지 않고 곧바로 동의 화면을 출력합니다.

 

 

 

 

 

developers.kakao.com/tool/rest-api/open/get/v2-user-me

 

카카오계정 로그인

여기를 눌러 링크를 확인하세요.

accounts.kakao.com

-> REST API TEST 도구 링크

 

 

인가 코드 받기

-> 카카오 로그인을 시작하는 단계로써, 카카오 로그인 동의 화면을 호출하고, 사용자 동의를 거쳐 인가 코드 발급을 요청하는 API입니다.

-> 동의 화면은 [내 애플리케이션] > [카카오 로그인] > [동의 항목]의 설정을 반영

 

 

동의 화면

-> 사용자는 동의 화면에서 서비스 이용 시 필요한 사용자 정보 및 권한 제공에 동의하고 로그인을 요청하거나 로그인을 취소할 수 있습니다. 사용자가 필수 동의 항목에 모두 동의한 뒤 '동의하고 계속하기' 버튼을 누르면, 카카오 인증 서버는 해당 사용자에 대한 인가 코드를 발급해 서비스의 redirect_uri에 전달합니다.

 

 

 

 

동의 화면이 나타나지 않아요 ★

-> 사용자가 이미 동의 화면에 동의를 완료한 경우에는 동의 화면이 나타나지 않고 즉시 인가 코드가 발급됩니다.

->동의 화면은 사용자와 앱이 연결되는 시점에 나타나므로, 최초 연결 시에만 동의 화면이 나타납니다.

-> 동의 화면을 다시 띄우려면 앱과 연결을 끊은 후, 다시 인가 코드를 요청합니다.

 

 

* 인가 코드 요청의 응답은 redirect_uri로 HTTP 302 Redirect 되며, Location에 인가 코드가 담긴 쿼리 스트링(Query String) 또는 에러 메시지를 포함합니다.

 

*사용자가 '취소' 버튼을 클릭한 경우에는 에러 메시지를 담은 쿼리 스트링이 redirect_uri로 전송됩니다.

 

 

 

redirect_uri 설정 확인하기

-> 처음 카카오 로그인을 구현하고 인가 코드 받기를 요청했을 때, "Invalid redirect" 에러가 발생하는 경우가 많습니다. 이 에러는 인가 코드 발급 요청 시 전달된 redirect_uri가 앱 정보에 등록된 값과 다를 때 발생

 

 

 

* JavaScript SDK의 카카오 로그인 함수인 Kakao.Auth.authorize로 인가 코드 받기를 요청하면 간편 로그인 기능을 사용할 수 있습니다. (간편 로그인은 카카오 계정 ID 및 비밀번호 입력 없이 카카오톡을 통해 사용자를 인증하고 인가 코드를 발급받는 기능)

간편 로그인 사용 시에도 REST API와 마찬가지로 인가 코드를 Query String으로 전달받으며, 서비스 서버에서 해당 인가 코드로 토큰 발급을 요청할 수 있습니다. 자세한 내용은 JavaScript > 로그인을 참고합니다.

 

 

 

 

* 인가 코드 받기 - Request (Sample)

 

 

-> 여기서 포스트맨에 사용할 때, 꼭 https:// 를 붙여야 ERROR가 발생하지 않는다.

 

* auth_type 파라미터 지원 중단(Deprecated)

-> 보안 목적으로 사용자 로그인 상태에서 다시 한번 사용자 인증을 요청하는 데 사용됐던 auth_type 파라미터는 prompt 파라미터로 대체되었습니다. 로그인 사용자의 재인증은 "prompt=login"을 전달하여 요청

 

 

-> 성공하면, code, state값을 받고 실패하면 error와 error_description의 값을 받게 된다.

 

 

 

 

나는 포스트맨(Postman)으로 실습을 진행하였다.

 

* 포스트맨

-> 앞에서도 말했지만, Sample에서 https:// 가 없어도,

포스트맨을 사용할 때, 꼭 https:// 를 붙여야 ERROR가 발생하지 않는다.

 

* 해당 Params에 prompt를 선언 후, login의 값을 value로 지정 시, 이메일, 비밀번호를 계속 치게끔 구현된다.(앞에서 말한, 보안 목적으로 사용자 로그인 상태에서 다시 한번 사용자 인증을 요청하는 데 사용, 로그인 사용자의 재인증은 "prompt=login"을 전달하여 요청

-> Send를 누른 후, 주소를 복사해서 브라우저(explorer, chrome 등에 붙이면 해당 주소에 code값이 나온다)

-> 일회성 코드 값 : 0wUWh10l6MnZKuwj6uYkf2XlNnAJlL2pZAdiD-ANC_uhrvvrF-DyqAY-3la3xawynqM60Ao9dRkAAAF4Pfq7JA (한번 사용하게 되면 사용할 수 없게 되어, 다시 한번 더 발급받아야 함)

 

 

 

 

 

추가 항목 동의받기

-> 추가 항목 동의받기는 사용자가 첫 카카오 로그인 시 동의 화면에서 동의하지 않았지만, 서비스 이용 중 추가로 동의해야 하는 항목을 동의 요청하는 기능

 

-> 추가 항목 동의받기는 인가 코드 받기에 scope 파라미터로 추가 동의받을 항목의 키를 추가적으로 포함해 요청

-> 추가 항목 동의받기 요청 시에는 scope 파라미터를 반드시 포함해야 합니다.

 

-> 요청 시 카카오 인증 서버는 사용자에게 추가 동의받을 항목의 동의를 요청하는 화면을 출력합니다. 사용자가 해당 항목에 동의하면 추가 동의가 성공 및 완료되고, 사용자가 취소하면 추가 동의 요청이 실패

 

-> 추가 항목 동의받기 요청이 성공하여 사용자 동의가 완료되면 인가 코드를 발급받습니다. 해당 인가 코드로 토큰 받기를 요청하고, 이후 카카오 API 요청 시 새로 발급받은 토큰을 사용해야 합니다.

 

 

Request 

-> https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code&scope=account_email (이메일 동의 항목을 추가 동의하기 위한 Sample)

 

-> 아래에 표를 보면 알다시피, 추가 동의 항목을 받고자 하는 것은, scope = '추가 동의 항목' 받고자 하는 값을 넣어 주면 된다.

 

Response

 

 

 

 

* 포스트맨

 

 

 

 

-> code=OSrpqhikMTKjE0A4r6ocW6wAJ2XhRv2zzMyu9vMLpxoFd8d8w_mkoVzIfxpkfjqk12bOvQopyV8AAAF4Pg8coA

 

 

 

 

 

 

 

 

토큰 받기

-> 인가 코드를 받은 뒤, 인가 코드로 액세스 토큰과 리프레시 토큰을 발급받는 API입니다.

-> 인가 코드 받기만으로는 카카오 로그인이 완료되지 않으며, 토큰 받기까지 마쳐야 카카오 로그인을 정상적으로 완료할 수 있습니다.

 

-> 필수 파라미터 값들을 담아 POST로 요청합니다.

-> 요청 성공 시, 응답은 JSON 객체로 Redirect URI에 전달되며 두 가지 종류의 토큰 값과 타입, 초 단위로 된 만료 시간을 포함

 

 

-> 사용자가 로그인에 성공하면 발급되는 액세스 토큰(Access Token)과 리프레시 토큰(Refresh Token)을 가짐 

 

 

Request

 

* client_secret 기능은 REST API를 1 회독 후에, 시간이 남으면 써보도록 하겠다(애플리케이션에서 이미 발급은 받은 상태, 하지만 활성화는 OFf)

 

-> https://kauth.kakao.com/oauth/token?grant_type=authorization_code&client_id=86e7beeb04e76962d231219fdbab3d62&redirect_uri=http://127.0.0.1:5500/shopping.html&code=24eBvw8zu8_I1fXAqKrCZ-G7b3kM0yM-twDO6dqz_zqXx6GEFC-KKBA_axP6R3rxXFHPwQo9dZsAAAF4PhwqfA

(postman에 넣은 link 주소)

 

Response

-> 주소창에서 얻은, code값을 부여해 postman 결과처럼 token 결과 값을 얻은 화면이다. (단, code값은 일회성이기 때문에 한번 사용하면 다시 발급받아야 한다.)

 

 

 

-> code 값을 부여했을 때, 나오는 결과 값이다(JSON형태로 출력)

 

* access_token                // String // 사용자 액세스 토큰 값

* token_type                  // String // 토큰 타입, bearer로 고정

* refresh_token               // String // 사용자 리프레시 토큰 값

* expires_in                    // Integer // 액세스 토큰 만료 시간(초)

* scope                          // String // 인증된 사용자의 정보 조회 권한 범위 , 범위가 여러 개일 경우, 공백으로 구분..

* refresh_token_expires_in // Integer // 리프레시 토큰 만료 시간(초)

 

 

로그아웃

-> 로그아웃 API는 사용자 액세스 토큰과 리프레시 토큰을 모두 만료시킵니다.

-> 사용자가 서비스에서 로그아웃하면 로그아웃 API를 호출하여 더 이상 대상 사용자의 정보로 카카오 API를 호출할 수 없도록 합니다. 로그아웃 요청 성공 시, 응답 코드와 로그아웃된 사용자의 회원번호를 받습니다.

-> 로그아웃 시에도 웹 브라우저의 카카오 계정 세션은 만료되지 않고, 로그아웃을 호출한 앱의 토큰만 만료됩니다. 따라서 웹 브라우저의 카카오 계정 로그인 상태는 로그아웃 API를 호출해도 유지됩니다. 로그아웃 후에는 서비스 초기 화면으로 리다이렉트 하는 등 후속 조치를 취하도록 합니다.

-> 서비스에서 필요에 따라 웹 브라우저의 카카오 계정 로그인 상태 또한 로그아웃 처리하여야 할 때는 추가 기능인 카카오 계정과 함께 로그아웃을 사용해 카카오 계정 세션을 만료시켜야 합니다.

 

 

Request

액세스 토큰 사용

 

 

Response

-> 결과 값을 보면, id 로그아웃된 사용자의 회원번호가 나타난다.

 

 

 

어드민 키 사용 (Sample)

 

-> 어드민 키를 사용할 때, 포스트맨에서 Header와 Params 둘 다 적용해줘야 한다.

 

 

Response (Sample)

 

 

 

-> 앱 어드민 키는 노출하면 안 되기 때문에, 그림판으로 이용해서 자른 상태이다.

 

 

 

 

 

 

카카오 계정과 함께 로그아웃

-> 카카오 계정과 함께 로그아웃은 웹 브라우저에 로그인된 카카오 계정의 세션을 만료시키고, 서비스에서도 로그아웃 처리할 때 사용하는 로그아웃 추가 기능입니다.

-> 카카오 계정과 함께 로그아웃 기능의 설명과 동작에 대한 자세한 내용은 이해하기를 참고합니다.

-> 기본적인 로그아웃은 토큰을 만료시켜 해당 사용자 정보로 더 이상 카카오 API를 호출할 수 없도록 하는 기능으로, 서비스 로그아웃과 카카오계정 로그아웃을 각각 수행해야 합니다. 

 

-> 기능을 이용하려면 앱 설정에 Logout Redirect URI를 등록해야 합니다.

-> [내 애플리케이션] > [카카오 로그인] > [고급] > [Logout Redirect URI]에 최대 10개까지 등록

   다음 규칙에 맞게 등록해야 합니다:

  • Logout Redirect URI는 http/https 프로토콜 및 80, 433 포트를 허용합니다.
  • Logout Redirect URI는 http/https 프로토콜을 구분하므로 각각 등록해야 합니다.

 

* 앱의 REST API 키를 client_id, 서비스 로그아웃 처리를 하는 서비스 서버의 주소를 Logout Redirect URI 파라미터에 담아 GET으로 요청

* 로그아웃 과정 중 유지하고자 하는 특정 값이 있다면 state 파라미터에 담아 요청 시 함께 전달할 수 있습니다.

* 서비스 서버의 Logout Redirect URI로 전달된 서비스 로그아웃 요청에 대한 처리는 자체적으로 구현해야 합니다.

* 카카오 인증 서버는 서비스 로그아웃 처리 결과를 전달받지 않습니다.

 

 

Request

GET/oauth/logout? client_id={REST_API_KEY}&logout_redirect_uri={LOGOUT_REDIRECT_URI} HTTP/1.1

Host: kauth.kakao.com

 

 

 

Response

 

 

 

 

-> 포스트맨에서 카카오 계정과 함께 로그아웃 실행결과이다.

(꼭 GET이든 POST든 주소 앞에 https:// 붙여주자. 까먹지 말자)

 

 

<실행화면>

 

 

 

 

 

연결 끊기

-> 연결 끊기는 앱과 사용자 카카오 계정의 연결을 끊는 기능입니다.

-> REST API 사용 시 연결 끊기는 사용자의 액세스 토큰(Access token) 또는 앱 어드민 키(Admin key)로 API를 호출할 수 있습니다.

-> 앱 어드민 키는 절대로 유출되어선 안 되는 중요한 키입니다. , 정보 보안을 위해 어드민 키를 사용한 REST API 요청은 꼭 서버에서만 사용하고, 소스 코드에는 어드민 키를 사용하지 않도록 유의합니다.

-> 어드민 키를 사용해 연결 끊기를 할 경우, 대상 사용자를 명시하는 파라미터를 함께 보내야 합니다.

 

 

Request

Access Token 사용

 

-> 에러 발생함.

 

 

Admin Key 사용(어드민 키 사용)

 

 

Response

 

-> 어드민 키 사용 시 정상 작동됨

 

 

<실행결과>

 

Sample

 

연결 끊기 알림 받기

-> 연결 끊기 알림은 사용자가 서비스 외부에서 각 서비스 애플리케이션(이하 앱)과의 연결을 해제할 경우, 카카오 서버가 사용자의 연결 끊기 요청을 서비스 서버로 전달하는 콜백(Callback) 기능입니다.

 

-> 이 기능을 사용하려면 먼저 설정하기 > 연결 끊기 알림 설정에서 콜백 URL 및 요청 방법(Method)을 지정해야 합니다. 요청 바디로 회원번호 user_id와 연결 끊기 요청 경로 referrer_type을 전달하며, 헤더는 유효성 검증을 위한 앱 어드민 키를 전달합니다.

 

아래의 요청 전문 예제를 참고합니다.

-> 이러한 요청을 받으면 특정 사용자가 앱과의 연결을 끊은 것이므로, 서비스 서버에서도 해당 사용자 정보를 삭제하는 등 개인정보 처리 방침에 따른 조치를 취한 뒤 카카오 서버에도 응답해야 합니다.

  • 카카오 서버가 요청 시 전달한 어드민 키가 올바른 값인지 확인합니다. 어드민 키가 올바르다면, 서비스 서버에서 해당 사용자의 정보를 삭제하고, 함께 필요한 작업이 있다면 수행합니다.
  • 사용자 정보 삭제 및 관련 작업 완료 후 카카오 서버의 요청에 대해 HTTP status "200 OK"로 응답합니다. 카카오 서버는 HTTP status로 성공 여부를 판단하므로 응답 본문(Body)은 필요하지 않습니다.
  • 카카오 서버로의 응답은 3초 이내로 이뤄져야 합니다. 사용자 정보 삭제에 실패한 경우를 제외하고는 모두 성공으로 응답합니다.

주의: 성공 응답을 잊지 마세요!

-> 즉, 사용자 탈퇴 처리 및 정보 삭제에 실패하는 경우를 제외하고 모든 경우에 성공 응답을 보내야 합니다.

 

 

 

 

 

연결 끊기 알림(Sample)

연결 끊기 알림 설정이 잘 되었는지 테스트하려면?

-> 연결 끊기 알림을 받으려면 사용자가 연결을 끊는 상황을 만들어야 합니다. 카카오 계정 페이지 또는 카카오톡의 더보기 탭에 있는 카카오 계정 관리 메뉴에서 연결 끊기 기능을 제공합니다. 이 기능을 사용해 연결 끊기 알림 및 서비스 서버의 처리가 정상적으로 이뤄지는지 확인할 수 있습니다.

 

 

 

-> ERROR 발생, 에러 원인에 대해 카카오 측에 문의함

 

 

-> 문의 결과 : 도메인 주소가 필요

-> 도메인 주소가 없어서 해당 예제(연결 끊기 알림)는 패스하도록 하겠다.

 

 

 

토큰 정보 보기

-> 액세스 토큰의 유효성을 검증하거나 정보를 확인하는 API입니다.

-> 이 API를 사용하면 토큰 만료 여부나 유효기간을 알 수 있어 갱신 과정에 활용할 수 있습니다.

-> 액세스 토큰을 요청 헤더(Header)에 담아 GET Method로 요청합니다.

-> 응답은 JSON 객체로 토큰 상세 정보를 받습니다.

 

에러 발생 시

유용한 참고정보 > REST API > 응답 코드

 

 

Request

 

Response

 

 

Sample

 

 

 

*포스트맨 (토큰 정보 보기 결과 값)

appId, expiresInMillis

-> REST API와 카카오 SDK에서 동일한 파라미터 이름 및 단위를 사용하여 사용성을 개선하고자,
'appId'는 'app_id', 'expiresInMillis'는 'expires_in'으로 파라미터명을 변경하였습니다.

 

 

 

 

 

토큰 갱신하기(계속 갱신해서, access_token으로 test 하면 됨) ★

-> 액세스 토큰과 리프레시 토큰을 갱신하는 API입니다.

-> JavaScript SDK 사용 시에도 보안 정책으로 인해 REST API로 액세스 토큰을 갱신합니다.

-> 리프레시 토큰 값과 필수 파라미터를 담아 POST로 요청합니다.

-> 응답은 토큰을 발급받을 때처럼 JSON 객체로 받습니다.

-> 응답 중 refresh_token 값은 요청 시 사용된 리프레시 토큰의 만료 시간이 1개월 미만으로 남았을 때만 갱신되어 전달됩니다. 따라서 refresh_token과 refresh_token_expires_in은 결과 값에 포함되지 않을 수 있다는 점을 응답 처리 시 유의

 

 

 

Request

 

Response

 

 

Sample

 

*포스트맨

-> refresh_token : 기존 리프레시 토큰의 유효기간이 1개월 미마인 경우에만 갱신되므로, 해당 응답(response)에서는 나오지 않은 것 같다. <추측>

-> 당연하게도 refresh_token이 되지 않으면, refresh_token_expires_in도 나오지 않는다.

 

 

 

 

사용자 정보 가져오기

동의 항목 설정 필요

-> 이 API를 사용하려면 동의 항목 설정을 참고하여 필요한 사용자 정보 동의 항목을 설정해야 합니다.

-> 현재 로그인한 사용자의 정보를 불러옵니다.

-> 사용자 정보 요청 REST API는 사용자 액세스 토큰을 사용하는 방법, 앱 어드민 키를 사용하는 방법 두 가지로 제공

-> 어드민 키는 보안에 유의하여 사용해야 하므로 서버에서 호출할 때만 사용합니다.

-> 어드민 키로 요청할 때는 어떤 사용자의 정보가 필요한지 명시하기 위해 대상 사용자의 ID를 전달

-> 추가 파라미터를 사용하면 특정 정보만 지정해서 받아오거나 URL 응답 값을 HTTPS로 받을지 지정할 수 있습니다.

-> 사용자 정보에는 [내 애플리케이션] > [사용자 프로퍼티] 메뉴에서 설정한 사용자 프로퍼티가 포함됩니다.

-> 사용자 정보 요청 성공 시, 응답 바디(Body)는 JSON 객체로 사용자 정보들을 포함합니다.

 

 

Request

 

 

 

 

 

Response

developers.kakao.com/docs/latest/ko/kakaologin/common#user-info

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

-> 사용자 정보 가져오기에 Response 

 

Sample

Response: 성공(성공했을 때의 결과)

 

 

* 포스트맨(정상적으로 출력되었다)

 

 

 

 

사용자 정보 저장하기

-> 사용자 정보 저장하기 기능은 사용자 프로퍼티인 properties에 값을 저장합니다.

-> 키 값은 [내 애플리케이션] > [사용자 프로퍼티]에 정의한 값을 사용해야 합니다. 설정하기 > 사용자 프로퍼티

-> properties 파라미터에 액세스 토큰과 함께 저장할 항목의 키와 값을 JSON 형식의 목록으로 담아 POST로 요청합니다.

-> 파라미터 구성 방법은 요청 예제를 참고합니다. 사용자 프로퍼티 저장에 성공하면 응답 코드와 해당 사용자 회원번호를 받습니다. 저장한 사용자 프로퍼티는 사용자 정보 가져오기를 통해 사용할 수 있습니다. 해당 사용자의 정보 전체를 불러오거나, 파라미터로 특정 정보만 지정해 불러올 수 있습니다.

 

 

 

Request

 

-> 개발자 document에서 사용자 정보 저장하기에 Authorization은 Header이다. (문서 오류 ㅡㅡ 30분 넘게 왜 안되지??라는 생각을 했는데, 문서 오류였다)

-> 즉, Authorization 은 Header에 value -> Beare {ACCESS_TOKEN}으로 값을 집어넣어줘야 한다.

-> 해당 이미지는, 내가 다른 부분에서 잘라서 가져왔기 때문에 에러 발생 X

 

<해당 사진이 document에서 문서 오류 사진이다>

 

 

<해당 카카오 document에서 오타가 있어서 수정을 요구함>

 

 

 

Response

 

 

Sample

 

 

 

 

* 포스트맨(잘 작동됨)

-> 여기서 아래 그림처럼 properties의 값에서 {"key" : "value"} 형태 값으로 수정해야 한다.

-> 닉네임으로도 가능하며, 프로필 이미지의 링크로 해도 ID값이 나온다(출력 값 동일)

 

 

 

사용자 목록 받기

-> 앱의 사용자 회원번호 목록을 제공하는 API입니다.

-> 이 API는 관리자를 위한 것으로, 앱 어드민 키를 사용하기 때문에 반드시 서버에서만 호출해야 합니다.

-> 앱 어드민 키를 헤더에 담아 GET으로 요청하며, 파라미터를 사용해 회원번호 조회 범위 및 정렬 순서를 지정할 수 있습니다. 응답은 JSON 객체로 전달되며 검색 조건에 맞는 사용자 회원번호 목록을 포함합니다.

-> 사용자 수가 많아 한 번에 전달할 수 없을 경우, 이전 또는 다음 페이지 URL을 포함합니다. 해당 URL을 통해 사용자 목록의 이전 또는 다음 페이지를 추가 확인할 수 있습니다.

 

 

Request

 

 

 

 

 

Response

 

 

Sample

 

 

 

* 포스트맨 (제대로 작동이 되었다)

 

 

 

 

 

 

고급: 연결하기

주의사항

-> 연결하기 API는 자동 연결을 사용하지 않는 앱에서만 사용하는 API입니다.

-> 사용 중인 앱의 자동 연결 사용 여부는 [내 애플리케이션] > [카카오 로그인] > [로그인 시 앱 자동 연결] 메뉴에서 확인

-> '로그인 시 앱 자동 연결' 설정이 노출된다면 자동 연결 사용 여부를 설정할 수 있는 앱으로, '사용 안 함'으로 설정돼 있을 경우 연결하기 API를 사용해야 합니다.

 

 

다음은 앱과 사용자를 수동으로 연결하고자 하는 경우의 예시입니다:

  • 사용자가 카카오 로그인 및 서비스 이용에 동의한 직후 서비스에 가입 완료되지 않는 경우
    • 사용자가 카카오 로그인 후 별도 정보 입력이나 인증 절차를 거쳐 가입 완료하는 경우
    • 사용자가 즉시 가입되지 않고, 서비스에서 일정 주기로 사용자의 가입을 승인하는 경우
  • 이 외, 서비스에서 사용자의 앱 연결 상태를 직접 관리해야 할 필요가 있는 경우

-> 자동 연결을 사용하지 않는 서비스는 반드시 연결하기를 호출해 사용자와 앱을 직접 연결해야 합니다.

-> 또한 사용자의 서비스 가입 상태와 앱 연결 상태가 일치하는지 확인하고 연결하기 및 연결 끊기를 사용해 사용자의 연결 상태를 관리해야 합니다. 따라서 반드시 필요한 경우가 아니라면 기본 설정인 자동 연결을 사용하는 것을 권장합니다.

 

 

참고 정보: 가입 미완료자 연결 끊기 처리

-> 사용자가 연결 대기 상태에서 24시간 안에 연결하기 API를 통해 연결 완료되지 않는다면, 가입 미완료자로 분류되어 카카오 API 플랫폼에서 연결 끊기 처리합니다. 연결 끊기 시 연결 끊기 알림 설정이 되어 있다면 콜백(Callback)이 전달되므로, 서비스에서도 해당 사용자에 대해 연결 끊기 요청 및 사용자 정보 삭제를 해야 합니다.

 

-> 액세스 토큰을 헤더에 담아 POST로 요청합니다. 요청 시 properties 파라미터를 사용해 사용자 프로퍼티 값 저장을 함께 요청할 수 있습니다. 사용자 프로퍼티 값은 사용자 연결 후 사용자 정보 저장하기 API를 통해서도 저장할 수 있으며 연결 끊기 시 삭제됩니다.

 

 

 

 

Request

 

 

 

Response

 

 

Sample

 

 

 

 

 

 

* 포스트맨

 

Response: 실패, 앱과 이미 연결되어 있는 사용자인 경우인 에러가 발생한다.

 

 

Kakao developers - REST API를 한번 다 써보면서, 포스트맨을 어떻게 쓰는지에 대해 감을 천천히 익혀봤다.

 

다음에는, 시간이 되면 카카오톡 소셜이나 메시지 등 다른 것을 해보도록 하겠다.

 

 

 

developers.kakao.com/docs/latest/ko/reference/rest-api-reference

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

-> REST API 레퍼런스

반응형

댓글