2021. 2. 2. 18:13ㆍAPI
카카오 로그인을 이용하는 서비스를 만드는 중이다.
카카오 로그인시에 액세스토큰이 발급되고 그 토큰에 사용자에 대한 정보가 담겨있고 그 토큰에서 필요한 정보를 뽑아 사용한다.
카카오 로그인을 사용하려면 액세스토큰발급부터 진행해야하는데 클라이언트와 함께 작업한다면 액세스토큰발급은 클라이언트쪽의 임무이다. 서버는 클라이언트쪽에서 보내준 액세스토큰으로 사용자인지 확인하고 로그인 혹은 회원가입을 진행시키고 필요한 정보를 뽑아 디비에 저장한다.
하지만 테스트할 때 매번 클라이언트에게 토큰을 요청하기가 번거로워 간단하게 액세스토큰발급을 할 수 있는 방법을 찾아봤고 아래의 방법을 이용해 토큰을 발급받았다.
1. 카카오 개발자센터에서 애플리케이션을 등록한다.
developers.kakao.com/console/app
+ 동의항목 설정해야한다.
2. redirect URI을 설정한다.
3. 인증코드 받기
아래의 url로 접속시도하여 로그인 요청
https://kauth.kakao.com/oauth/authorize?client_id={REST_API 앱키를 입력하세요}&response_type=code&redirect_uri={redirectURI를 입력하세요}
크롬 시크릿모드창에서 수행하기를 권장(로그인된 세션이 유효하면 로그인요청을 하지않음)
code 뒷부분이 인증코드!
4. 사용자토큰받기
참고 사이트가 파이썬 코드를 사용했는데 나도 파이썬 즐겨쓰기도 하고 코랩으로 하면 접근성도 뛰어나기에 여기서 발급받기로 했다.
import requests
import json
url = "https://kauth.kakao.com/oauth/token"
data = {
"grant_type" : "authorization_code",
"client_id" : "Rest API 키",
"redirect_uri" : "http://127.0.0.1:9000/kakaocallback",
"code" : 'SVBIOeu9awf-r8nF2gsOfB0sVSjVVyV6htmIVnJjnelaXb0ROL6wfNxJBdHW4BCjG5etiQopb1UAAAF3YfB5Zw'
}
response = requests.post(url, data=data)
tokens = response.json()
print(tokens)
결과
{'access_token': 'oV6_Hn5-m6HLdnC5dLmUHOaCPb5Arp8MAfjWoAorDKcAAAF3YfGgCw', 'token_type': 'bearer', 'refresh_token': 'KSyFqrA7J2v8jGX4cn_urzZs7bT8BB_rN_7fYAorDKcAAAF3YfGgCg', 'expires_in': 21599, 'scope': 'account_email profile', 'refresh_token_expires_in': 5183999}
여기서 주의할 점!!!!
3번에서 발급받은 인증코드는 단1번의 기회만 주어진다고한다.
실패하거나 재실행해야할경우 다시 3번으로 돌아가야한다
즉 동일한 인증 코드로 2번이상 '4. 사용자토큰받기'를 수행하지 않도록해야한다.
여기서 액세스토큰을 복붙해서 로그인 api에 이용하장!
5. 사용자 정보 받아오기
<참고>
'API' 카테고리의 다른 글
농림축산식품 공공데이터 API 이용하기 (0) | 2021.04.11 |
---|---|
구글 로그인 API (Google Sign-In API) (0) | 2021.03.17 |
부트페이 API - 결제 검증, 결제취소 (0) | 2021.03.02 |
네이버로그인 API - 액세스토큰 발급, 사용자 정보 받기 (0) | 2021.02.03 |