![[기술정리]OAuth2.0 - kakao](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255B%25EA%25B8%25B0%25EC%2588%25A0%25EC%25A0%2595%25EB%25A6%25AC%255DOAuth2.0%2520-%2520kakao%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3D%25EC%2586%25A1%25EC%258A%25B9%25ED%2598%2584%25EC%259D%2598%2520%25EB%25B8%2594%25EB%25A1%259C%25EA%25B7%25B8&w=2048&q=75)
정의
웹 및 애플리케이션 인증 및 권한 부여를 위한 개방형 표준 프로토콜
사용자가 자신의 자격 증명을 제공하지 않고도 다른 서비스에 접근할 수 있도록 도움
사용자는 보호된 리소스에 접근 가능, 서비스 간의 인증을 쉽게 처리
적용 순서
- 애플리케이션 등록
- 애플리케이션 설정
- 플랫폼 등록
- 카카오 로그인 활성화
- openID Connect 활성화
- Redirect URI 설정
- 동의 항목 설정
- 연동 개발(REST API)
- 인가 코드 받기
- client_id : 앱 키에서 가져오기
실행 순서
- 클라이언트가 카카오 로그인 버튼 클릭
- 애플리케이션은 카카오 인증 서버로 인증 요청
- 클라이언트가 카카오 로그인 페이지로 리다이렉션(https://kauth.kakao.com/oauth/authorize)
- 필요한 데이터
- client_id
- redirect_uri
- response_type : “code”
- scope : 필수 X
- 카카오에 로그인 하고, 애플리케이션에 필요한 권한을 승인
- 카카오 인증 서버는 사용자가 권한을 승인하면 애플리케이션에 redirect_uri로 인증 코드를 발급(http://localhost:8080/oauth?code=${인증코드})
- 애플리케이션은 발급된 인증 코드를 받아 카카오 인증 서버에 액세스 토큰을 요청(https://kauth.kakao.com/oauth/token)
- Content_Type : application/x-www-form-urlencoded
- 필요한 데이터
- grant_type : authorization_code
- client_id
- redirect_uri
- code : 인증 코드
- 카카오 인증 서버는 애플리케이션에 엑세스 토큰을 발급
{
"access_token": "ㄴㅇㄴㅇㄹㄴㄹㅇㄴ",
"token_type": "bearer",
"refresh_token": "ㅇㄴㄹㄴㅇㄹㄴㄹ",
"id_token": "ㅇㅇㄴㄹㄴㄹㄴㅇㄹㅇㄴㄹㄴ",
"expires_in": 정수어떤것,
"scope": "profile_nickname",
"refresh_token_expires_in": 정수 어떤것
}
- 사용자 정보 가져오기
Share article