Spring - kakao(Security + OAuth 2)

호수·2023년 9월 19일
0

Spring

목록 보기
3/5
post-thumbnail

카카오 애플리케이션

카카오 디벨로퍼로 이동
https://developers.kakao.com/

Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

애플리케이션 추가하기

REST API 키 확인

좌측메뉴에서 앱 설정 > 플랫폼 > Web 플랫폼 등록
대부분이 8080포트 이겠지만, 설정해준 포트를 입력해주시면 됩니다.

좌측메뉴에서 제품 설정 > 카카오 로그인

나의 경우 http://localhost:8080/oauth2/kakao?code={코드 값} 이 URI로 리다이렉트 된다. 이 코드 값으로 Access Token을 요청할 수 있다.

Redirect URI 설정이란?!
카카오 로그인이 성공하였을 경우 넘어갈 화면을 설정해주는것이다.
활성화 설정 ON 및 Redirect URI 등록
Redirect URI는 Spring Security를 사용하지 않는 경우에는 컨트롤러에서 URI를 매핑하여 로직을 구현해주면 되지만 Spring Security를 사용하면 Spring에서 자동으로 매핑을 하여 Service 쪽으로 연결해줍니다. 카카오 로그인을 진행하면 등록한 Redirect URI로 리다이렉트 되는데 Authorize code값을 얻을 수 있다.

⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
반드시 Redirect URI는 프론트에서 접근할 수 있는 localhost 3000번으로 해줘야 한다
여기서 인가코드를 받고 넘기는 등 모든 작업이 이루어지는데 프론트가 접근할 수 없으면 아무것도 할 수없다!
대신 백에서 혼자 테스트할 땐 8080도 추가해서 따로 테스트해볼 순 있음!
⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️

다음 우리는 웹 플랫폼 이기 때문에 플랫폼 메뉴로 들어가 localhost3000번을 추가해 주자
나중에 배포하면 배포 주소도 넣어줘야 한다!

이후, 왼쪽 NavBar에 카카오 로그인 > 동의항목 클릭!

로그인시, 어떤 정보를 받아올 지 설정하는 화면이다.

Secret Code 생성

(buid.grade)
Oauth2 로그인을 위한 dependencies 부분은 oauth2-client와 security

	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
카카오 로그인 API 등록

(application.yml)

  security:
    oauth2:
      client:
        registration:
          kakao:
            client-id: 앱 설정 -> 앱 키 -> REST API 키
            client-secret: 제품 설정 -> 카카오 로그인 -> 보안 -> Client Secret
            authorization-grant-type: authorization_code
            client-authentication-method: POST
            client-name: kakao
            redirect-uri: http://localhost:8080/login/oauth2/code/kakao
            scope:
              - profile_nickname
              - account_email
    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
  • client
    카카오 아이디로 로그인 하기 위해 만든 애플리케이션의 정보를 입력합니다.
    scope에 동의 항목 설정을 한 내용을 추가합니다.
  • provider
    Spring Security OAuth2의 경우 provider에 대한 정보를 구글과 페이스북만 가지고 있습니다.
    그렇기 때문에 수작업으로 설정을 해주어야 합니다.

실행

http://localhost:8080/oauth2/authorization/kakao
로 요청합니다.

profile
Back-End개발자 입문 과정 블로그🚀

0개의 댓글