SpringBoot/Security
[SpringBoot] Security 네이버 로그인
유쾌한고등어
2023. 1. 23. 15:14
[SpringBoot] Security 네이버 로그인
- loginForm에 등록
<a href="/oauth2/authorization/naver">네이버 로그인</a>
- application.yml 추가
naver:
client-id: smgzHgKqnDOVexvnukON
client-secret: xqKSvPC9Ty
scope:
- name
- email
client-name: Naver
authorization-grant-type: authorization_code
redirect-uri: http://localhost:8080/login/oauth2/code/naver
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 # 회원정보를 Json으로 받는데 response라는 키값으로 네이버가 리턴해줌.
- Naver provider 파일 생성
public class NaverUserInfo implements OAuth2UserInfo{
private Map<String,Object> attributes;
public NaverUserInfo(Map<String,Object> attributes){
this.attributes = attributes;
}
@Override
public String getProviderId() {
return (String) attributes.get("id");
}
@Override
public String getProvider() {
return "naver";
}
@Override
public String getEmail() {
return (String) attributes.get("email");
}
@Override
public String getName() {
return (String) attributes.get("name");
}
}
- 네이버 로그인 요청 서비스
// PrincipalOauth2UserService.java
...
else if(userRequest.getClientRegistration().getRegistrationId().equals("naver")){
oAuth2UserInfo = new NaverUserInfo((Map)oAuth2User.getAttributes().get("response"));
}