naver oauth login
This commit is contained in:
@@ -3,6 +3,7 @@ package com.spring.security1.config.oauth;
|
||||
import com.spring.security1.config.auth.PrincipalDetails;
|
||||
import com.spring.security1.config.oauth.provider.FacebookUserInfo;
|
||||
import com.spring.security1.config.oauth.provider.GoogleUserInfo;
|
||||
import com.spring.security1.config.oauth.provider.NaverUserInfo;
|
||||
import com.spring.security1.config.oauth.provider.OAuth2UserInfo;
|
||||
import com.spring.security1.model.User;
|
||||
import com.spring.security1.repository.UserRepository;
|
||||
@@ -14,6 +15,8 @@ import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
|
||||
import org.springframework.security.oauth2.core.user.OAuth2User;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PrincipalOauth2UserService extends DefaultOAuth2UserService {
|
||||
@@ -40,6 +43,9 @@ public class PrincipalOauth2UserService extends DefaultOAuth2UserService {
|
||||
} else if(userRequest.getClientRegistration().getRegistrationId().equals("facebook")){
|
||||
System.out.println("페이스북 로그인 요청");
|
||||
oAuth2UserInfo = new FacebookUserInfo(oAuth2User.getAttributes());
|
||||
} else if(userRequest.getClientRegistration().getRegistrationId().equals("naver")) {
|
||||
System.out.println("네이버 로그인 요청");
|
||||
oAuth2UserInfo = new NaverUserInfo((Map<String, Object>) oAuth2User.getAttributes().get("response"));
|
||||
}
|
||||
|
||||
String provider = oAuth2UserInfo.getProvider();
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.spring.security1.config.oauth.provider;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class NaverUserInfo implements OAuth2UserInfo {
|
||||
|
||||
private Map<String, Object> attributes; // oauth2User.getAttributes()
|
||||
|
||||
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");
|
||||
}
|
||||
}
|
||||
@@ -36,5 +36,24 @@ spring:
|
||||
client-id: 1135697936892001
|
||||
client-secret: 681e0ce30d4fdf4df0ed28874a85b1af
|
||||
scope:
|
||||
- email
|
||||
- public_profile
|
||||
- email
|
||||
- public_profile
|
||||
|
||||
naver:
|
||||
client-id: 5YvofRpJ1pX9ZadJMUyk
|
||||
client-secret: hN2iAEatk3
|
||||
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 # /oauth2/authorization/naver 요청시
|
||||
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 라는 키값으로 네이버가 리턴해 준다.
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
</form>
|
||||
<a href="/oauth2/authorization/google">구글 로그인</a>
|
||||
<a href="/oauth2/authorization/facebook">페이스북 로그인</a>
|
||||
<a href="/oauth2/authorization/naver">네이버 로그인</a>
|
||||
<a href="/joinForm">회원가입을 아직 하지 않으셨나요?</a>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user