[Spring Security] 구글 로그인
📍구글 로그인 준비 이 링크로 들어와서 Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 1. 프로젝트 생성spring-oauth-google이라는 프로젝트를 하나 만들었다. 2. OAu
88dldl.tistory.com
이 글에서 이어집니다.
🖥️ 구글 로그인 분리
여러 소셜로그인(구글,네이버 등등) 이 많아지니,,, 분리를 해서 자주 사용되는 것들은 묶어주는게 좋을것 같다!
provider 패키지 생성
OAuth2UserInfo
public interface OAuth2UserInfo {
String getProviderId();
String getProvider();
String getEmail();
String getName();
}
GoogleUserInfo
public class GoogleUserInfo implements OAuth2UserInfo{
private Map<String,Object> attributes; //getattrubutes를 받는다
public GoogleUserInfo(Map<String, Object> attributes) {
this.attributes = attributes;
}
@Override
public String getProviderId() {
return (String) attributes.get("sub");
}
@Override
public String getProvider() {
return "google";
}
@Override
public String getEmail() {
return (String) attributes.get("email");
}
@Override
public String getName() {
return (String) attributes.get("name");
}
}
PrincipalOauth2UserService - loadUser
OAuth2UserInfo oAuth2UserInfo = null;
if(userRequest.getClientRegistration().getRegistrationId().equals("google")){
System.out.println("구글 로그인 요청 ");
oAuth2UserInfo = new GoogleUserInfo(oauth2User.getAttributes());
}else{
System.out.println("구글만 지원합니다...");
}
유지보수에 더 효율적인 코드가 되었다 !!
🖥️네이버 로그인
build.gradle
naver:
client-id: sdF4bx9uJjAdpwscMizm
client-secret: n6ZDPY3FKZ
scope: email,name
client-name: Naver
authorization-grant-type: authorization_code
redirect-uri:
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라는 키값으로 네이버가 리턴해줌
구글 밑에 추가 하면된다.
- redirect-uri나 authorization-grant-type는 provider로 등록되어있지 않기 때문에 등록해줘야함
'Spring' 카테고리의 다른 글
[Spring Security] 회원가입, 로그인 테스트 (0) | 2024.07.03 |
---|---|
[Spring Security] 필터 테스트 (0) | 2024.07.03 |
[Spring Security] 구글 로그인 (0) | 2024.06.27 |
[Spring Security] @PreAuthorize, @PostAuthorize, @Secured (0) | 2024.06.25 |
[Spring Security] 2. 회원가입 및 로그인/ 권한처리 (0) | 2024.06.25 |