카카오톡 로그인 과정
- 인가코드 받기 -> 카카오접근 (리다이렉트 uri)
- Access토큰 받기
- 사용자 정보 요청
모든 단계를 서버에서 할 필요는 없음
해당 부분도 고민해 봐야 할 부분
애플리케이션 등록 및 카카오 설정하기
1. 애플리케이션 등록 API KEY확인
내 애플리케이션 -> 애플리케이션 등록
REST API키 확인하기(API키값은 다른 곳에 노출되지 않게 주의하기!)
2. 카카오 로그인 활성화 / Redirect Uri 설정
3. 동의 항목 설정
카카오 로그인 -> 동의 항목
기본 애플리케이션에서는 이메일이 필수 항목이 아니여서 비즈니스 앱 등록 후 사용진행
4. 클라이언트 시크릿키 발급
카카오 로그인 -> 보안
Setp1 인가코드
기본정보
메서드 | URL | 인증방식 |
GET | https://kauth.kakao.com/oauth/authorize | - |
요청
https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}
Setp2 토큰 받기
기본정보
인증방식 | URL | 인증방식 |
POST | https://kauth.kakao.com/oauth/token | - |
헤더
이름 | 설명 | 필수 |
Content-type | Content-type: application/x-www-form-urlencoded;charset=utf-8 요청 데이터 타입 |
O |
요청
curl -v -X POST "https://kauth.kakao.com/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "client_id=${REST_API_KEY}" \
--data-urlencode "redirect_uri=${REDIRECT_URI}" \
-d "code=${AUTHORIZE_CODE}"
Setp3 사용자 정보 가져오기
기본 정보
메서드 | URL | 인증 방식 |
GET/POST | https://kapi.kakao.com/v2/user/me | 액세스 토큰 서비스 앱 어드민 키 |
헤더
이름 | 설명 | 필수 |
Authorization | Authorization: Bearer ${ACCESS_TOKEN} 인증 방식, 액세스 토큰으로 인증 요청 |
O |
Content-type | Content-type: application/x-www-form-urlencoded;charset=utf-8 요청 데이터 타입 |
O |
요청 : 모든정보 받기
curl -v -G GET "https://kapi.kakao.com/v2/user/me" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
요청: email 정보 받기
curl -v -X POST "https://kapi.kakao.com/v2/user/me" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
--data-urlencode 'property_keys=["kakao_account.email"]'
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
사용자 정보 DB에 저장 / 로그인 진행 - 세션에 저장
사용자 정보 DB에 저장후, Speing security 사용자 인증 방식을통해 - session에 저장 , 로그인 진행
jwt 토큰 방식 이용시 - 사용자 정보 DB에 저장후에 로그인시에 jwt토큰 발급 받으면됨
카카오톡 로그아웃을 위해 AccessToken 도 session에 저장해두기
'프로젝트 > Springboot-Petsitter' 카테고리의 다른 글
[Project - Petsitter] Github Actions CI/CD 파이프라인 구축 (1) | 2024.11.18 |
---|---|
[Project - Petsitter] (indexing)을 통한 성능 개선 (0) | 2024.07.16 |
[Project - Petsitter] 회원가입/ 로그인 (1) | 2024.06.15 |
[Project - Petsitter] ERD작성 (0) | 2024.06.15 |
[Project - Petsitter] 요구사항 명세서 작성 (0) | 2024.06.15 |