Невозможно получить UserInfo после авторизации через OAuth2, Spring - PullRequest
0 голосов
/ 30 октября 2019

В configure () у меня есть:

       ...
           .oauth2Login()
                .userInfoEndpoint()
                .oidcUserService(oidcUserService);

Мой класс CustomIodcUserService:

@Service
public class CustomOidcUserService extends OidcUserService {

@Autowired
private UserRepository userRepository;

@Override
public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException {
    OidcUser oidcUser = super.loadUser(userRequest);
    Map attributes = oidcUser.getAttributes();
    GoogleOAuth2UserInfo userInfo = new GoogleOAuth2UserInfo(attributes);
    updateUser(userInfo);
    return oidcUser;
}

private void updateUser(GoogleOAuth2UserInfo userInfo) {
    User user = userRepository.findByEmail(userInfo.getEmail()).get();
    if(user == null) {
        user = new User();
    }
    user.setEmail(userInfo.getEmail());
    user.setName(userInfo.getName());

    System.out.println(userRepository.save(user));
}

}

Но методы этого класса никогда не называются Кто-нибудь встречал это или как я могу решить этоили получить UserInfo иначе?

1 Ответ

0 голосов
/ 31 октября 2019

https://www.callicoder.com/spring-boot-security-oauth2-social-login-part-2/

В этой статье описывается, как это сделать, только там они использовали

userInfoEndpoint ()
       .userService (customOAuth2UserService)
...