반응형
Kakao Developers 기본 설정
1. Kakao Developers 접속 및 회원가입
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
2. 애플리케이션 추가
3. 대시보드 설정
- 카카오 로그인, 동의항목, Redirect URI 부분을 각자 필요 정보에 맞게 설정
3 - 1. 카카오 로그인 설정
- 활성화 후, Redirect URI를 다음과 같이 설정
3 - 2. 동의항목 설정
- 구현에서 활용하기 위한 닉네임 및 프로필 사진을 필수 및 선택 동의로 설정 진행
3 - 3. 앱키 확인
- 앱키에 기재되어 있는 REST API 키는 추후에 사용될 예정이므로 따로 메모
카카오 로그인 구현하기
1. 카카오 로그인 과정
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
1 - 1. 과정 요약
- 인가 코드 받기
- 서비스 서버로부터 카카오 인증 서버로 인가 코드를 요청
- 토큰 받기
- 서비스 서버가 Redirect URI로 전달받은 인가 코드로 토큰을 요청
- 사용자 로그인 처리
- 서비스 서버가 발급받은 액세스 토큰으로 사용자 정보를 요청해 사용자의 회원번호 및 정보를 조회하여 서비스 회원인지 확인
2. 카카오 로그인 구현
2 - 1. Spring Boot 기본설정
- build.gradle
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.security:spring-security-oauth2-client'
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'
- application.yml
spring:
jwt:
secret: {서비스만 알수있는 secret값 설정}
security:
oauth2:
client:
registration:
kakao:
client-id: {rest-api key}
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
authorization-grant-type: authorization_code
client-authentication-method: none
client-name: Kakao
scope: profile_nickname
provider:
kakao:
authorization-uri: https://kauth.kakao.com/oauth/authorize
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user-name-attribute: id
다음과 같이 registration과 provider를 따로 설정해줘야 합니다.
2 - 2. 인가 코드 받기
- 처음에 사용자가 카카오 로그인 버튼을 클릭하면 OAuth2AuthorizationRequestRedirectFilter.doFilterInternal()에서 application.yml 파일에서 설정했던 authorization-uri 내용을 확인해서 인가 코드를 redirect_uri로 GET 요청으로 돌려줍니다.
2 - 3 토큰 받기
- 인가 코드와, client_id, redirect_uri를 기반으로 토큰 발급을 요청하게 됩니다.
- 그럼 이를 기반으로 token_type과 access_token, refresh_token 등을 return하게 됩니다.
- 해당 과정에서 동의항목에서 요청했던 부분에 대한 user 정보를 확인할 수 있습니다.
2 - 4 JWT
- 전달받은 user의 값을 활용하여, SuccessHandler에서 token을 생성합니다.
- 해당 과정에서 사용된 createToken은 다음과 같습니다.
- token 생성은 기존에 application.yml에 기재했던 secretKey와 user정보들을 활용하여 Token을 생성합니다.
- 후에 생성한 토큰값을 기반으로 쿠키 속성을 설정합니다.
- setHttpOnly : 자바스크립트에서 쿠키에 접근하지 못하게 합니다.
- setSecure : HTTPS 연결에서만 쿠키가 전송되도록 보장합니다.
- setPath : 쿠키의 유효 경로를 루트로 설정합니다.
- setMaxAge : 쿠키의 유효 기간을 설정합니다.
설정을 마무리한 후 설정된 쿠키를 HTTP 응답에 추가하여 클라이언트를 지정한 URL로 redirect 시키면서 로그인 처리가 완료됩니다.
반응형
'Spring' 카테고리의 다른 글
Spring Batch (0) | 2024.09.22 |
---|---|
Spring Batch - Scheduler (1) | 2024.09.16 |
Spring Batch란? (1) | 2024.09.09 |
Spring Boot 회원가입 - 이메일(SMTP) 인증 구현하기 (0) | 2024.07.28 |
Spring Boot Profile 설정 (0) | 2024.07.22 |