빙응의 공부 블로그
[Spring]OAuth2.0 - 필수 변수와 네이버 요청하기 본문
📝 OAuth2 소셜 로그인을 위한 변수 설정
application.properties
#registration
spring.security.oauth2.client.registration.서비스명.client-name=서비스명
spring.security.oauth2.client.registration.서비스명.client-id=서비스에서 발급 받은 아이디
spring.security.oauth2.client.registration.서비스명.client-secret=서비스에서 발급 받은 비밀번호
spring.security.oauth2.client.registration.서비스명.redirect-uri=서비스에 등록한 우리쪽 로그인 성공 URI
spring.security.oauth2.client.registration.서비스명.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.서비스명.scope=리소스 서버에서 가져올 데이터 범위
#provider
spring.security.oauth2.client.provider.서비스명.authorization-uri=서비스 로그인 창 주소
spring.security.oauth2.client.provider.서비스명.token-uri=토큰 발급 서버 주소
spring.security.oauth2.client.provider.서비스명.user-info-uri=사용자 정보 획득 주소
spring.security.oauth2.client.provider.서비스명.user-name-attribute=응답 데이터 변수
예시
#registration
spring.security.oauth2.client.registration.naver.client-name=naver
spring.security.oauth2.client.registration.naver.client-id=발급아이디
spring.security.oauth2.client.registration.naver.client-secret=발급비밀번호
spring.security.oauth2.client.registration.naver.redirect-uri=http://localhost:8080/login/oauth2/code/naver
spring.security.oauth2.client.registration.naver.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.naver.scope=name,email
#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
🧷참고! registration은 우리 서비스 특정을 위해 필수이지만 provider의 경우 유명한 사이트이면 해당 서버가 미리 가지고 있다.( 구글, Okta, 페이스북, 깃허브, 등등)
📝 네이버 로그인 API 신청하기
NAVER Developers
네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음
developers.naver.com
여기에 들어가 API 활용 신청을 하면 된다.
이렇게 진행하면 ID와 PASSWORD를 받을 수 있다!!
spring:
profiles:
active: local
datasource:
url: jdbc:h2:tcp://localhost/~/oauth
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
# show_sql: true # 주석 처리된 부분을 활성화하면 SQL 쿼리가 로그에 출력됩니다.
logging:
level:
org:
hibernate:
SQL: debug
type: trace # Hibernate 쿼리 매개변수 및 유형을 로깅하려면 이 항목을 활성화합니다.
security:
oauth2:
client:
registration:
naver:
client-name: naver
client-id:MY_ID
client-secret: MY_PASSWORD
redirect-uri: http://localhost:8080/login/oauth2/code/naver
authorization-grant-type: authorization_code
scope:
- name
- email
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: response
이제 나의 아이디와 나의 패스워드를 넣어주면 된다.
해당 형식은 yml이기에 propertise는 밑에처럼 하면 된다.
#registration
spring.security.oauth2.client.registration.naver.client-name=naver
spring.security.oauth2.client.registration.naver.client-id=
spring.security.oauth2.client.registration.naver.client-secret=
spring.security.oauth2.client.registration.naver.redirect-uri=http://localhost:8080/login/oauth2/code/naver
spring.security.oauth2.client.registration.naver.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.naver.scope=name,email
#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
창은 잘뜬다!!
물론 아직 UserDetail를 만들지 않아서 동의하면 오류가 나온다!
'Spring > 개인공부_실습' 카테고리의 다른 글
[Spring]API 문서화 - Swagger (0) | 2024.10.04 |
---|---|
[Spring]OAuth2.0 - 구현하기 (0) | 2024.07.30 |
[Spring]OAuth2.0 간단한 동작 원리 및 모식도 (0) | 2024.07.30 |
[Spring REST API]로그인 구현하기 - Refresh Token 보안 강화 (0) | 2024.06.06 |
[Spring REST API]로그인 구현하기 - 2개의 토큰 (0) | 2024.06.04 |