Я нахожу способ предоставить своему веб-сайту возможность входить в систему как Facebook, после входа пользователя в систему как Facebook; он автоматически сохранит имя пользователя в моей базе данных, поэтому пользователю будет легко размещать его на моем сайте. Проблема в том, как получить информацию о пользователе, которая уже хранится в моей базе данных. Я не могу использовать UserRepository в SigninAdapter:
@Service
public class FacebookSignInAdapter implements SignInAdapter {
@Autowired
private UserRepository userRepository; //This one is not working
@Override
public String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) {
if(null==userRepository) {
System.out.println("UserRepository is null");
}
Authentication authentication = new UsernamePasswordAuthenticationToken(connection.getDisplayName(), null, Arrays.asList(new SimpleGrantedAuthority("USER")));
SecurityContextHolder.getContext().setAuthentication(authentication);
return null;
}
}