카카오 로그인 api

2023. 12. 3. 12:58카테고리 없음

참고하면 좋은 글

 

Access Token의 문제점과 Refresh Token

Access Token의 문제점 사용자의 잦은 로그아웃 경험 현재 달록에서는 Refresh Token을 사용중이지 않다. Access Token 만을 사용하여 사용자를 인증한다. 현재 달록의 Access Token 유효 기한은 24시간 즉, 하

hudi.blog

 

가정

사이트 도메인 : http://localhost:8000

redirect URI : http://localhost:8080/kakao/login/callback

 

실험 도구

 

포스트맨(Postman) 사용법과 API 실행해 보기

포스트맨의 사용방법과 이를 이용하여 API를 실행하여 테스트 하는 방법에 대해 소개한다. API에 요청을 보내고 결과를 확인하고 싶을 때, 브라우저에 직접 API URL을 작성하여 결과를 확인할 수 있

binit.tistory.com

 

 

로직

1.  http://localhost:8000 사이트에서 카카오 로그인을 실행

2. 완료시 Authorization Code를 http://localhost:8080/kakao/login/callback 에 보냄. (인증)

3. http://localhost:8080/kakao/login/callback 에서 Authorization Code를 통해 accessToken 을 받음

4. accessToken을 통해 사용자 정보를 요청

4. 로그인 정보를 받음.

 

user 오브젝트 :

id, username, password, email, address

 

 

 

Kakao Developers

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

developers.kakao.com

1단계 인증 코드 받기

클라이언트 서버에서(https://kauth.kakao.com/oauth/authorize)로 GET요청  

 

필수 항목 (body)

client_id : REST API 키

redirect_uri : redirect URI(http://localhost:8080/kakao/login/callback)

response_type : 'code' 고정

 

2단계 토큰 받기

rediect된 Spring API서버에서 (https://kauth.kakao.com/oauth/token)로 POST 요청

 

필수항목 (헤더)

Content-type : Content-type: application/x-www-form-urlencoded;charset=utf-8

 

필수항목 (body)

grant_type : 'authorization_code' 고정

client_id : REST API 키

redirect_uri : redirect URI(http://localhost:8080/kakao/login/callback)

code : 1단계의 인증 코드

 

3단계 사용자 정보가져오기

rediect된 Spring API서버에서 (https://kapi.kakao.com/v2/user/me)로 GET 요청

 

필수항목 (헤더)

Authorization: Bearer ${ACCESS_TOKEN} // Bearer 후 공백 꼭 쓰기

Content-type: application/x-www-form-urlencoded;charset=utf-8

 

 

참고 :  토큰 정보 보기

rediect된 Spring API서버에서 (https://kapi.kakao.com/v1/user/access_token_info) 로 POST 요청

 

필수항목(헤더)

Authorization: Bearer ${ACCESS_TOKEN} // Bearer 후 공백 꼭 쓰기

 

참고 : 토큰 갱신하기

rediect된 Spring API서버에서 (https://kauth.kakao.com/oauth/token) 로 POST 요청

 

필수항목 (헤더)

Content-type : Content-type: application/x-www-form-urlencoded;charset=utf-8

 

필수 항목  (body)

grant_type : 'refresh_token' 고정

client_id : REST API 키

refresh_token : 발급때 받은 refresh_token

 

토큰과 관련한 간단한 보안 이슈

CSRF : 관리자 권한이 있는 사용자가 특정 url요청을 하도록 유도.

(대표적인 예시 : 이미지에 캐시 100만원을 추가하는 API 주소를 적고 관리자가 이미지를 클릭하도록 유도한다.)

XSS : 자바스크립트를 홈페이지에 게시판 같은곳에 기입하여 공격할 수 있음.