먼저 네이버 오픈 API로 이동합니다.
다음과 같이 각 항목을 채웁니다.
URL을 등록합니다.
ClientID와 ClientSecret이 생성됩니다.
해당 키값들을 application-oauth.properties에 등록합니다.
네이버에서는 스프링 시큐리티를 공식 지원하지 않기 때문에 그동안 Common-OAuth2Provier에서 해주던 값들도 전부 수동으로 입력해야 합니다.
# registration
spring.security.oauth2.client.registration.naver.client-id=네이버클라이언트ID
spring.security.oauth2.client.registration.naver.client-secret=네이버클라이언트시크릿
spring.security.oauth2.client.registration.naver.redirect-uri={baseUrl}/{action}/oauth2/code/{registrationId}
spring.security.oauth2.client.registration.naver.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.naver.scope=name,email,profile_image
spring.security.oauth2.client.registration.naver.client-name=Naver
# provider
spring.security.oauth2.client.provider.naver.authorization-uri=https://nid.naver.com/oauth2.0/authorize
spring.security.oauth2.client.provider.naver.token-uri=https://nid.naver.com/oauth2.0/token
spring.security.oauth2.client.provider.naver.user-info-uri=https://openapi.naver.com/v1/nid/me
spring.security.oauth2.client.provider.naver.user-name-attribute=response //
user-name-attribute=response
- 기준이 되는 user-name의 이름을 네이버에서는 response로 해야 합니다.
- 이유는 네이버의 회원 조회 시 반환되는 JSON 형태 때문입니다.
- 스프링 시큐리티에서는 하위 필드를 명시할 수 없습니다.
- 최상위 필드들만 user-name으로 지정 가능합니다.
- 하지만 네이버의 응답값 최상위 필드는 resultCode, message, response 입니다.
참고
'Spring' 카테고리의 다른 글
[SpringSecurity] JUnit 테스트 코드에 시큐리티 적용하기 (0) | 2021.07.04 |
---|---|
[SpringSecurity] 네이버 로그인 연동하기 2 - 스프링 시큐리티 설정 등록 (0) | 2021.07.03 |
[SpringSecurity] 구글 로그인 연동하기 8 - 세션 저장소로 데이터베이스 사용하기 (0) | 2021.06.28 |
spring.session.jdbc.initialize-schema 옵션 (0) | 2021.06.28 |
[SpringSecurity] 구글 로그인 연동하기 7 - 어노테이션 기반으로 개선하기 (0) | 2021.06.27 |
댓글