[OAuth] 카카오가 OAuth를 통해 로그인 되는 과정
1️⃣ 인가 코드 받기
1. 서비스 서버가 카카오 인증 서버로 GET https://kauth.kakao.com/oauth/authorize 를 통해 인가 코드 받기 요청
2. 카카오 인증 서버가 사용자에게 카카오계정 로그인을 통한 인증 요청
3. 사용자가 카카오 계정으로 로그인
4. 카카오 인증 서버가 사용자에게 동의 화면을 출력하여 인가를 위한 사용자 동의 요청
- 인증(Authentication)
- ID와 비밀번호로 사용자 신원 확인
- 각 서비스에 사용자가 카카오계정으로 로그인할 수 있는 기능 지원
- 서비스에서 각 사용자를 식별할 수 있는 고유한 회원번호 제공
- 인가(Authorization)
- 사용자 개인정보와 같은 자원(Resource)에 대한 접근 권한 획득
5. 사용자가 필수 동의 항목, 선택 동의 항목에 동의
6. 카카오 인증 서버가 서비스 서버의 Refirect URI로 인가 코드 전달
2️⃣ 토큰 받기
1. 서비스 서버가 Redirect URI로 전달받은 인가 코드로 POST https://kauth.kakao.com/oauth/token 를 통해 토큰 받기 요청
2. 카카오 인증 서버가 토큰을 발급해 서비스 서버에 전달
구분 | 설명 | 만료 시간 |
액세스 토큰(Access token) | 사용자 인증, 카카오 API 호출 권한 부여 | Android, iOS : 12시간 JavaScript: 2 시간 REST API : 6시간 |
리프레시 토큰(Refresh token) | - 액세스 토큰 재발급에 사용 - 유효한 리프레시 토큰이 있다면 사용자가 매번 카카오계정 정보를 입력하거나 카카오톡으로 로그인하는 인증 절차를 거치지 않아도 액세스 토큰 재발급 가능 |
2달 만료 시간 1달 남은 시점부터 갱신 가능 |
ID 토큰(ID token) | 카카오 로그인 사용자의 인증 정보를 제공하는 토큰 | 액세스 토큰과 동일 |
3. 액세스 토큰으로 사용자 정보 가져오기 같은 카카오 API를 호출하거나 토큰 정보 보기로 액세스 토큰 유효성을 검증한 후 사용자 정보 가져오기를 요청해 필요한 사용자 정보를 받아 서비스 회원 가입 및 로그인 완료
3️⃣ 사용자 로그인 처리
[Spring Boot] OAuth 2.0 를 이용한 소셜 로그인 구현
[Spring Boot] OAuth 2.0 를 이용한 소셜 로그인 구현
연결 과정 목차 yml 파일에 OAuth 클라이언트의 설정 정보 작성 SecurityConfig 수정 OAuthService 구현 OAuthAttributes 생성 build.gradle 의존성 추가 UserProfile 생성 OAuth2UserService를 구현한 CustomOAuth2UserService 구현
chaewsscode.tistory.com
1. 서비스 서버가 발급받은 액세스 토큰으로 사용자 정보 가져오기를 요청해 사용자의 회원번호 및 정보를 조회하여 서비스 회원인지 확인
2. 서비스 회원 정보 확인 결과에 따라 서비스 로그인 또는 회원 가입 과정 진행
3. 이 외 서비스에서 필요한 로그인 절차를 수행한 후, 카카오 로그인한 사용자의 서비스 로그인 처리 완료