package org.pac4j.oauth.client;
import com.github.scribejava.apis.Foursquare2Api;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.redirect.RedirectAction;
import org.pac4j.oauth.profile.foursquare.FoursquareProfile;
import org.pac4j.oauth.profile.foursquare.FoursquareProfileCreator;
import org.pac4j.oauth.profile.foursquare.FoursquareProfileDefinition;
/**
* <p>This class is the OAuth client to authenticate users in Foursquare.
* It returns a {@link org.pac4j.oauth.profile.foursquare.FoursquareProfile}.</p>
* <p>More information at https://developer.foursquare.com/overview/auth.html</p>
*
* @author Alexey Ogarkov
* @since 1.5.0
*/
public class FoursquareClient extends OAuth20Client<FoursquareProfile>{
public FoursquareClient() {}
public FoursquareClient(String key, String secret) {
setKey(key);
setSecret(secret);
}
@Override
protected void clientInit(final WebContext context) {
configuration.setApi(Foursquare2Api.instance());
configuration.setProfileDefinition(new FoursquareProfileDefinition());
configuration.setScope("user");
setConfiguration(configuration);
defaultProfileCreator(new FoursquareProfileCreator(configuration));
defaultLogoutActionBuilder((ctx, profile, targetUrl) -> RedirectAction.redirect("https://www.foursquare.com/logout"));
super.clientInit(context);
}
}