카카오에 이어 네이버 로그인입니다.
방법은 카카오와 비슷하며, 로직은 동일하다고 볼 수 있습니다.
우선 naver developers 페이지에 들어가서 네이버 계정으로 로그인합니다.
그 다음 화면 상단의 Application -> 내 애플리케이션을 누릅니다.
그러면 위 화면이 나옵니다.
여기서 "Application 등록" 버튼을 눌러서 애플리케이션을 생성합니다.
여기서 애플리케이션 이름과 사용할 API를 선택합니다.
이 글의 컨텐츠는 네이버 로그인이므로 네이버 로그인을 선택합니다.
네이버의 개인정보는 카카오처럼 검수과정을 거치지 않아도 이름, 이메일 등 많은 정보를 필수동의로 지정할 수 있습니다.
사용할 동의항목을 설정합니다. 저는 이메일과 별명을 선택했습니다.
그리고 로그인 서비스 환경을 선택합니다.
저는 PC 웹을 선택하였고, 서비스 URL과 Callback URL을 작성합니다.
서비스 URL은 말 그대로 메인 URL이며, Callback URL은 로그인 성공 시 이동할 주소를 작성합니다.
끝났다면 아래의 등록하기 버튼을 누릅니다.
그러면 애플리케이션이 생성되었고, 먼저 Key가 보입니다.
이제 SpringBoot로 넘어갑니다.
https://developers.naver.com/docs/login/devguide/devguide.md
https://developers.naver.com/docs/login/api/api.md
로그인 API 명세 및 개발 가이드 문서를 참고해주시면 됩니다.
# gradle
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
# Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
먼저 OAuth를 위한 의존성을 추가합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
spring:
security:
oauth2:
client:
provider:
naver:
authorization-uri: https://nid.naver.com/oauth2.0/authorize # 네이버 로그인 요청 uri
token-uri: https://nid.naver.com/oauth2.0/token # 토큰을 발급받기 위한 uri
user-info-uri: https://openapi.naver.com/v1/nid/me # 유저 정보를 받아오기 위한 uri
registration:
naver:
client-id: # Client ID
client-secret: # Client Secret
client-authentication-method: POST
authorization-grant-type: authorization_code
redirect-uri: # Callback URL
scope:
- email
- nickname
|
cs |
그 다음은 yml에 필수 정보를 넣어줍니다.
여기 넣은 정보들은 Java 코드에서 사용할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
@Value("${spring.security.oauth2.client.registration.naver.client-id}")
private String naverClientId;
@Value("${spring.security.oauth2.client.registration.naver.client-secret}")
private String naverClientSecret;
@Value("${spring.security.oauth2.client.registration.naver.client-authentication-method}")
private String naverAuthenticationMethod;
@Value("${spring.security.oauth2.client.registration.naver.authorization-grant-type}")
private String naverGrantType;
@Value("${spring.security.oauth2.client.registration.naver.redirect-uri}")
private String naverRedirectUri;
@Value("${spring.security.oauth2.client.provider.naver.authorization-uri}")
private String naverAuthorizationUri;
@Value("${spring.security.oauth2.client.provider.naver.token-uri}")
private String naverTokenUri;
@Value("${spring.security.oauth2.client.provider.naver.user-info-uri}")
private String naverUserInfoUri;
@Value("Bearer")
private String tokenType;
|
cs |
코드작성 부분은 다음 글에서 다루도록 하겠습니다.
'Spring' 카테고리의 다른 글
필드 주입 vs 생성자 주입 (0) | 2022.10.31 |
---|---|
SpringBoot OAuth 적용 [Naver - 2] (0) | 2022.10.18 |
SpringBoot OAuth 적용 [Kakao - 2] (0) | 2022.10.17 |
SpringBoot OAuth 적용 [Kakao - 1] (0) | 2022.10.14 |
JPA order by rand() limit (0) | 2022.10.13 |