code: @SuppressWarnings({"unchecked", "rawtypes"})
    public <C extends Credentials, U extends CommonProfile> Auth client(final String pattern,
        final Function<Config, Client<C, U>> provider) {
      bindings.put(pattern, (binder, config) -> {
  
        Client<C, U> client = provider.apply(config);
        Multibinder.newSetBinder(binder, Client.class)
            .addBinding().toInstance(client);
        Class clientType = client.getClass();
        Class profileType = ClientType.typeOf(clientType);
  
        bindProfile(binder, profileType);
  
        return new AuthFilter(clientType, profileType);
      });
      return this;
    }
docs: Add an auth client, like facebook, twitter, github, etc...Please note the require dependency
  must be in the classpath.
  
  @param pattern URL pattern to protect.
  @param provider Client to add.
  @param <C> Credentials.
  @param <U> CommonProfile.
  @return This module.