MakerHyeon

[SpringBoot] Security 네이버 로그인 본문

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"));
}

 

Comments