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 : 자바스크립트를 홈페이지에 게시판 같은곳에 기입하여 공격할 수 있음.
'스프링부트' 카테고리의 다른 글
spring 동작 원리 (0) | 2024.03.11 |
---|---|
spring boot MVC 패턴 연습하기 (0) | 2024.03.11 |
스프링부트 시작하기 (0) | 2024.03.09 |
Spring Login API (0) | 2023.12.03 |
API 학습하기 (0) | 2023.12.03 |