반응형
Spring에서 CommonOAuth2Provider에서 정보를 확인하면 GitHub의 End Point 정보들이 있다.
GITHUB {
@Override
public Builder getBuilder(String registrationId) {
ClientRegistration.Builder builder = getBuilder(registrationId,
ClientAuthenticationMethod.CLIENT_SECRET_BASIC, DEFAULT_REDIRECT_URL);
builder.scope("read:user");
builder.authorizationUri("https://github.com/login/oauth/authorize");
builder.tokenUri("https://github.com/login/oauth/access_token");
builder.userInfoUri("https://api.github.com/user");
builder.userNameAttributeName("id");
builder.clientName("GitHub");
return builder;
}
.yml 에서 client_id, client_secret, scope 정도 등록해서 로그인을 구현하다가 문제가 생겼다.
🤦🏻♀️어라라..? DB email에 null 값이 찍혔다.
DefaultOAuth2UserService 클래스에서 breakPoint를 찍어서 확인해보니까
null값이 찍히는 거다,, 에엥 이게뭐지하고 좀 찾아보니까 private되어 있었다.
public email에 정보가 있을 때는 email정보가 DB에 잘 저장됩니다.!!
고민하다가 null이면 그냥 username 값 넣어주는걸로 합의했다.
생각해보니까 getId로 값 가져올 때도,, 정수값으로 들어와서 에러를 만나서 변경해주었다. 밑에는 수정전!!
public String getId() {
return (String)getAttributes().get("id");
}
짜잔 DB에 저장되었다.
반응형
'개발 > Spring Boot' 카테고리의 다른 글
회원 탈퇴 로직 Spring Event로 처리하기 (0) | 2024.04.06 |
---|---|
[Spring] 스레드 풀 (1) | 2024.01.29 |
토큰 재발급 로직을 테스트하면서 발생한 문제 (2) | 2024.01.18 |
Test에서 deleteAll과 deleteAllInBatch() (0) | 2023.07.18 |
UnknownEntityException 문제.. (0) | 2023.06.22 |