해당 글에서는 Spring Boot 환경에서 OAuth 2.0 설정을 위해 네이버 로그인 설정 및 구성요소에 대해 알아봅니다.
![]()
1) 최초 네이버 개발센터 설정
1. 네이버 개발센터 : NAVER Developers 중 네이버 로그인 API를 접속하여 ‘오픈 API 이용 신청’ 버튼을 누릅니다.

네이버 로그인 - INTRO
환영합니다 네이버 로그인의 올바른 적용방법을 알아볼까요? 네이버 로그인을 통해 신규 회원을 늘리고, 기존 회원은 간편하게 로그인하게 하려면 제대로 적용하는 것이 중요합니다! 이에 올바
developers.naver.com
2. 약관 동의를 선택하고 ‘확인’ 버튼을 누릅니다.

3. 휴대폰 인증을 한 뒤, 회사 이름을 작성하고 ‘확인’ 버튼을 누릅니다.

4. 애플리케이션 이름을 작성하고, 사용 API를 ‘네이버 로그인’으로 선택합니다.

5. 로그인에서 수집되는 권한들을 선택합니다.

6. 제공 정보 선택을 하고 서비스 URL, CallBack URL을 입력합니다.
💡제공 정보 선택을 하고 서비스 URL, CallBack URL을 입력합니다.
💡 서비스 URL
- 네이버 로그인을 사용하는 서비스의 주 웹사이트 주소입니다. 사용자가 로그인 후 돌아갈 기본 페이지를 나타냅니다
- ex) 로컬 Node 서버 URL : http://localhost:3000
💡 네이버 로그인 CallBack URL(최대 5개)
- 네이버 로그인 인증이 완료된 후 사용자를 리다이렉턴 할 URL입니다.
- 인증 과정에서 발생한 정보를 받아 처리하는 엔드포인트입니다.
- 최대 5개까지 등록할 수 있어 다양한 시나리오에 대응할 수 있습니다.
ex) API 서버 URL : http://localhost:8080/api/v1/oauth2/naver 엔드포인트로 받아서 이후 후처리를 수행합니다.

7. 아래와 같은 최종 설정을 확인하였습니다.

2) 접속 정보 기반 테스트
1. 내 애플리케이션에서 Client ID와 Client Secret에 대해 확인합니다.

2. API 설정 탭 > 로그인 오픈 API 서비스 환경 중 네이버 로그인 Callback URL을 확인합니다.

3. 위에 정보들을 기반으로 웹 페이지 내에 접속하면 네이버 로그인 접속이 됨을 확인되었습니다.
https://nid.naver.com/oauth2.0/authorize?client_id={CLIENT_ID}&redirect_uri={YOUR_CALLBACK_URL}&response_type=code&state=RANDOM_STATE
# {CLIENT_ID} : 내 애플리케이션 > 개요 > 애플리케이션 정보 > 'Client ID'에서 확인이 가능합니다.
# {REDIRECT_URI} : 내 애플리케이션 > API 설정 > 로그인 오픈 API 서비스 환경 > 네이버 로그인 Callback URL (최대 5개)에서 확인이 가능합니다.

3) application.properties 설정 파일 확인
💡 application.properties 설정 파일 확인
- Spring Boot 크게는 provider, registration로 구분이 되어 있습니다.
- provider의 경우는 OAuth2 인증 제공자에 대한 설정 정보를 포함합니다.
- registration의 경우는 클라이언트 애플리케이션(Spring Boot APP)에 대한 설정을 포함합니다.
spring:
security:
oauth2:
client:
# OAuth2 인증 제공자(네이버)에 대한 설정 정보를 포함합니다.
provider:
naver:
authorization-uri: <https://nid.naver.com/oauth2.0/authorize>
token-uri: <https://nid.naver.com/oauth2.0/token>
user-info-uri: <https://openapi.naver.com/v1/nid/me>
user-name-attribute: id
# 클라이언트 애플리케이션(Spring Boot)에 대한 설정을 포함합니다.
registration:
naver:
client-id: UyfYudFog8G0pfktnq
client-secret: VnYHzwP2PN
redirect-uri:
authorization-grant-type: authorization_code
client-authentication-method: client_secret_post
client-name: naver
scope:
- nickname
- email
- profile_image
1. client.provider 구성
💡client.provider 구성
- OAuth2 인증 제공자에 대한 설정 정보를 포함하는 부분입니다. 여기서는 네이버 로그인을 위한 설정을 정의하고 있습니다.

항목 | 설명 |
authorization-uri | 사용자 인증을 위한 URL입니다. 사용자가 네이버 로그인 페이지로 리다이렉트될 때 이 주소가 사용됩니다. |
token-uri | 액세스 토큰을 발급받기 위한 URL입니다. 인증 코드를 액세스 토큰으로 교환할 때 이 주소로 요청을 보냅니다. |
user-info-uri | 인증된 사용자의 정보를 가져오기 위한 URL입니다. 발급받은 액세스 토큰을 사용하여 이 주소로 사용자 정보를 요청합니다. |
user-name-attribute | 사용자 정보 응답에서 사용자 식별자로 사용할 속성을 지정합니다. 네이버의 경우 'id'로 설정되어 있어, 이 값을 통해 사용자를 구분합니다. |
2. clinet.provider API 가이드
메서드 | 인증 | 요청 URL | 출력 포멧 | 설명 |
GET / POST | OAuth 2.0 | https://nid.naver.com/oauth2.0/authorize | URL 리다이렉트 | 네이버 로그인 인증 요청 |
GET / POST | OAuth 2.0 | https://nid.naver.com/oauth2.0/token | JSON | 접근 토큰 발급/갱신/삭제 요청 |
GET | OAuth 2.0 | https://openapi.naver.com/v1/nid/me | JSON | 네이버 회원 프로필 조회 |

네이버 로그인 API 명세 - LOGIN
네이버 로그인 API 명세 네이버 로그인 API는 네이버 로그인 인증 요청 API, 접근 토큰 발급/갱신/삭제 요청API로 구성되어 있습니다. 네이버 로그인 인증 요청 API는 여러분의 웹 또는 앱에 네이버
developers.naver.com
네이버 회원 프로필 조회 API 명세 - LOGIN
네이버 회원 프로필 조회 API 명세 NAVER Developers - 네이버 로그인 회원 프로필 조회 가이드 네이버 로그인을 통해 인증받은 받고 정보 제공에 동의한 회원에 대해 회원 메일 주소, 별명, 프로필 사
developers.naver.com
3. client.registration 구성
3.1. registration.naver.client-id, client-secret 값은 애플리케이션 정보 내에서 값을 확인합니다.
항목 | 설명 |
registration.naver.client-id | 네이버 개발자 센터에서 발급받은 애플리케이션의 고유 식별자입니다. OAuth2.0 인증 과정에서 클라이언트를 식별하는 데 사용됩니다. |
registration.naver.client-secret | 네이버 개발자 센터에서 발급받은 애플리케이션의 비밀 키입니다. 클라이언트 인증 과정에서 사용되며, 외부에 노출되지 않도록 주의해야 합니다. |


3.2. registration.naver.redirect-uri 값은 내 애플리케이션 > API 설정 탭 > 네이버 로그인 Callback URL을 활용합니다.
항목 | 설명 |
registration.naver.client-id | 네이버 개발자 센터에서 발급받은 애플리케이션의 고유 식별자입니다. OAuth2.0 인증 과정에서 클라이언트를 식별하는 데 사용됩니다. |
registration.naver.client-secret | 네이버 개발자 센터에서 발급받은 애플리케이션의 비밀 키입니다. 클라이언트 인증 과정에서 사용되며, 외부에 노출되지 않도록 주의해야 합니다. |
registration.naver.redirect-uri | OAuth2.0 인증 과정이 완료된 후 사용자가 리다이렉트될 URL을 지정합니다 |


3.3. authorization-grant-type 값에 대한 설명
💡authorization-grant-type
- OAuth 2.0 프로토콜에서 클라이언트가 액세스 토큰을 얻기 위해 사용하는 방법을 지정합니다. 일반적으로 다음과 같은 값들이 사용됩니다

Grant Type | 설명 |
authorization_code | 사용자가 인증 후 받은 인증 코드를 이용해 액세스 토큰을 요청하는 방식입니다. 가장 일반적으로 사용되는 방식으로, 웹 애플리케이션에서 주로 사용됩니다. |
implicit | 주로 단일 페이지 애플리케이션(SPA)에서 사용되며, 인증 코드 없이 바로 액세스 토큰을 받는 방식입니다. 보안상의 이유로 최근에는 권장되지 않습니다. |
password | 사용자의 아이디와 비밀번호를 직접 사용하여 액세스 토큰을 얻는 방식입니다. 높은 신뢰도가 요구되는 애플리케이션에서만 사용해야 합니다. |
client_credentials | 클라이언트 자체가 리소스 소유자인 경우 사용됩니다. 주로 서버 간 통신에서 사용됩니다. |
refresh_token | 기존 액세스 토큰이 만료되었을 때, 리프레시 토큰을 사용하여 새로운 액세스 토큰을 얻는 방식입니다. |
3.4. client-authentication-method 값은 아래와 같은 값을 가집니다.
💡 client-authentication-method 값은 아래와 같은 값을 가집니다.
- OAuth 2.0 클라이언트가 인증 서버에 자신을 인증하는 방법을 지정합니다

인증 방식 | 설명 |
client_secret_basic | 클라이언트 ID와 시크릿을 Base64로 인코딩하여 Authorization 헤더에 포함시킵니다. |
client_secret_post | 클라이언트 ID와 시크릿을 요청 본문에 포함시킵니다. |
client_secret_jwt | JWT(JSON Web Token)를 사용하여 클라이언트를 인증합니다. |
private_key_jwt | 비공개 키로 서명된 JWT를 사용하여 클라이언트를 인증합니다. |
3.4. registration.naver.scope 값은 선택한 사항에 따라 받을 수 있고, 각각 항목의 이름을 아래와 같습니다.


Scope | 설명 |
name | 회원이름 |
연락처 이메일 주소 | |
nickname | 별명 |
profile_image | 프로필 사진 |
gender | 성별 |
birthday | 생일 |
age | 연령대 |
birthyear | 출생연도 |
mobile | 휴대전화번호 |
오늘도 감사합니다😀
'Java > 환경설정' 카테고리의 다른 글
[Java] Google Gmail SMTP 환경 설정 방법 (0) | 2024.11.11 |
---|---|
[Java] OAuth 2.0 카카오 개발자(Kakao Developers) 동의항목 권한 없음 해결 방법 : 테스트 앱 생성 (1) | 2024.11.09 |
[Java] Spring Boot 환경에서 OAuth 2.0 설정 -1: 카카오 로그인 설정 및 구성요소 확인 (1) | 2024.10.31 |
[Java] Spring Boot 2.x.x 버전 프로젝트 생성: 지원 종료 및 다운그레이드 (2) | 2023.12.24 |
[Java] MacOS 환경에서 Java JDK 설정 및 변경하기 : homebrew, 다운로드 파일 (2) | 2023.06.28 |