- 네이버 로그인을 사용하는 서비스의 주 웹사이트 주소입니다. 사용자가 로그인 후 돌아갈 기본 페이지를 나타냅니다 - 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'로 설정되어 있어, 이 값을 통해 사용자를 구분합니다.