Pre-configured OAuth2 endpoints for 30+ popular services including Google, GitHub, Microsoft, social platforms, and more.
import "golang.org/x/oauth2/endpoints"The endpoints package and provider-specific packages provide ready-to-use OAuth2 endpoint configurations for major identity providers. These eliminate the need to manually configure AuthURL and TokenURL for common services.
import (
"golang.org/x/oauth2"
"golang.org/x/oauth2/endpoints"
"golang.org/x/oauth2/google" // Provider-specific package
)
// Using endpoints package
config := &oauth2.Config{
ClientID: "your-client-id",
ClientSecret: "your-client-secret",
Endpoint: endpoints.Google,
Scopes: []string{"email", "profile"},
}
// Or using provider-specific package
config := &oauth2.Config{
ClientID: "your-client-id",
ClientSecret: "your-client-secret",
Endpoint: google.Endpoint,
Scopes: []string{"email", "profile"},
}// golang.org/x/oauth2/endpoints
var Google = oauth2.Endpoint{
AuthURL: "https://accounts.google.com/o/oauth2/auth",
TokenURL: "https://oauth2.googleapis.com/token",
DeviceAuthURL: "https://oauth2.googleapis.com/device/code",
}
// golang.org/x/oauth2/google
var Endpoint = oauth2.Endpoint{
AuthURL: "https://accounts.google.com/o/oauth2/auth",
TokenURL: "https://oauth2.googleapis.com/token",
DeviceAuthURL: "https://oauth2.googleapis.com/device/code",
AuthStyle: oauth2.AuthStyleInParams,
}Package: golang.org/x/oauth2/google
// golang.org/x/oauth2/endpoints
var Microsoft = oauth2.Endpoint{
AuthURL: "https://login.live.com/oauth20_authorize.srf",
TokenURL: "https://login.live.com/oauth20_token.srf",
}
func AzureAD(tenant string) oauth2.Endpoint
// golang.org/x/oauth2/microsoft
var LiveConnectEndpoint = oauth2.Endpoint{
AuthURL: "https://login.live.com/oauth20_authorize.srf",
TokenURL: "https://login.live.com/oauth20_token.srf",
}
func AzureADEndpoint(tenant string) oauth2.EndpointExample:
// Common tenant
endpoint := endpoints.AzureAD("")
// or
endpoint := endpoints.AzureAD("common")
// Specific tenant
endpoint := endpoints.AzureAD("tenant-id")Package: golang.org/x/oauth2/microsoft
// golang.org/x/oauth2/endpoints
var Amazon = oauth2.Endpoint{
AuthURL: "https://www.amazon.com/ap/oa",
TokenURL: "https://api.amazon.com/auth/o2/token",
}
func AWSCognito(domain string) oauth2.Endpoint
// golang.org/x/oauth2/amazon
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.amazon.com/ap/oa",
TokenURL: "https://api.amazon.com/auth/o2/token",
}Example:
endpoint := endpoints.AWSCognito("https://mydomain.auth.us-east-1.amazoncognito.com")Package: golang.org/x/oauth2/amazon
// golang.org/x/oauth2/endpoints
var GitHub = oauth2.Endpoint{
AuthURL: "https://github.com/login/oauth/authorize",
TokenURL: "https://github.com/login/oauth/access_token",
DeviceAuthURL: "https://github.com/login/device/code",
}
// golang.org/x/oauth2/github
var Endpoint = endpoints.GitHubPackage: golang.org/x/oauth2/github
// golang.org/x/oauth2/endpoints
var GitLab = oauth2.Endpoint{
AuthURL: "https://gitlab.com/oauth/authorize",
TokenURL: "https://gitlab.com/oauth/token",
DeviceAuthURL: "https://gitlab.com/oauth/authorize_device",
}
// golang.org/x/oauth2/gitlab
var Endpoint = endpoints.GitLabPackage: golang.org/x/oauth2/gitlab
// golang.org/x/oauth2/endpoints
var Bitbucket = oauth2.Endpoint{
AuthURL: "https://bitbucket.org/site/oauth2/authorize",
TokenURL: "https://bitbucket.org/site/oauth2/access_token",
}
// golang.org/x/oauth2/bitbucket
var Endpoint = oauth2.Endpoint{
AuthURL: "https://bitbucket.org/site/oauth2/authorize",
TokenURL: "https://bitbucket.org/site/oauth2/access_token",
}Package: golang.org/x/oauth2/bitbucket
// golang.org/x/oauth2/endpoints
var Facebook = oauth2.Endpoint{
AuthURL: "https://www.facebook.com/v22.0/dialog/oauth",
TokenURL: "https://graph.facebook.com/v22.0/oauth/access_token",
}
// golang.org/x/oauth2/facebook
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.facebook.com/v3.2/dialog/oauth",
TokenURL: "https://graph.facebook.com/v3.2/oauth/access_token",
}Package: golang.org/x/oauth2/facebook
var X = oauth2.Endpoint{
AuthURL: "https://x.com/i/oauth2/authorize",
TokenURL: "https://api.x.com/2/oauth2/token",
}// golang.org/x/oauth2/endpoints
var LinkedIn = oauth2.Endpoint{
AuthURL: "https://www.linkedin.com/oauth/v2/authorization",
TokenURL: "https://www.linkedin.com/oauth/v2/accessToken",
}
// golang.org/x/oauth2/linkedin
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.linkedin.com/oauth/v2/authorization",
TokenURL: "https://www.linkedin.com/oauth/v2/accessToken",
AuthStyle: oauth2.AuthStyleInParams,
}Package: golang.org/x/oauth2/linkedin
// golang.org/x/oauth2/endpoints
var Instagram = oauth2.Endpoint{
AuthURL: "https://api.instagram.com/oauth/authorize",
TokenURL: "https://api.instagram.com/oauth/access_token",
}
// golang.org/x/oauth2/instagram
var Endpoint = oauth2.Endpoint{
AuthURL: "https://api.instagram.com/oauth/authorize",
TokenURL: "https://api.instagram.com/oauth/access_token",
}Package: golang.org/x/oauth2/instagram
var Discord = oauth2.Endpoint{
AuthURL: "https://discord.com/oauth2/authorize",
TokenURL: "https://discord.com/api/oauth2/token",
}
var Twitch = oauth2.Endpoint{
AuthURL: "https://id.twitch.tv/oauth2/authorize",
TokenURL: "https://id.twitch.tv/oauth2/token",
}
var Slack = oauth2.Endpoint{
AuthURL: "https://slack.com/oauth/v2/authorize",
TokenURL: "https://slack.com/api/oauth.v2.access",
}Packages: golang.org/x/oauth2/slack, golang.org/x/oauth2/twitch
// golang.org/x/oauth2/endpoints
var Spotify = oauth2.Endpoint{
AuthURL: "https://accounts.spotify.com/authorize",
TokenURL: "https://accounts.spotify.com/api/token",
}
// golang.org/x/oauth2/spotify
var Endpoint = oauth2.Endpoint{
AuthURL: "https://accounts.spotify.com/authorize",
TokenURL: "https://accounts.spotify.com/api/token",
}Package: golang.org/x/oauth2/spotify
// golang.org/x/oauth2/endpoints
var Fitbit = oauth2.Endpoint{
AuthURL: "https://www.fitbit.com/oauth2/authorize",
TokenURL: "https://api.fitbit.com/oauth2/token",
}
// golang.org/x/oauth2/fitbit
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.fitbit.com/oauth2/authorize",
TokenURL: "https://api.fitbit.com/oauth2/token",
}Package: golang.org/x/oauth2/fitbit
var Dropbox = oauth2.Endpoint{
AuthURL: "https://www.dropbox.com/oauth2/authorize",
TokenURL: "https://api.dropboxapi.com/oauth2/token",
}// golang.org/x/oauth2/endpoints
var Heroku = oauth2.Endpoint{
AuthURL: "https://id.heroku.com/oauth/authorize",
TokenURL: "https://id.heroku.com/oauth/token",
}
// golang.org/x/oauth2/heroku
var Endpoint = oauth2.Endpoint{
AuthURL: "https://id.heroku.com/oauth/authorize",
TokenURL: "https://id.heroku.com/oauth/token",
}Package: golang.org/x/oauth2/heroku
// golang.org/x/oauth2/endpoints
var Uber = oauth2.Endpoint{
AuthURL: "https://login.uber.com/oauth/v2/authorize",
TokenURL: "https://login.uber.com/oauth/v2/token",
}
// golang.org/x/oauth2/uber
var Endpoint = oauth2.Endpoint{
AuthURL: "https://login.uber.com/oauth/v2/authorize",
TokenURL: "https://login.uber.com/oauth/v2/token",
}Package: golang.org/x/oauth2/uber
// golang.org/x/oauth2/endpoints
var PayPal = oauth2.Endpoint{
AuthURL: "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
TokenURL: "https://api.paypal.com/v1/identity/openidconnect/tokenservice",
}
var PayPalSandbox = oauth2.Endpoint{
AuthURL: "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
TokenURL: "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice",
}
// golang.org/x/oauth2/paypal
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
TokenURL: "https://api.paypal.com/v1/identity/openidconnect/tokenservice",
}
var SandboxEndpoint = oauth2.Endpoint{
AuthURL: "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize",
TokenURL: "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice",
}Package: golang.org/x/oauth2/paypal
// golang.org/x/oauth2/endpoints
var StackOverflow = oauth2.Endpoint{
AuthURL: "https://stackoverflow.com/oauth",
TokenURL: "https://stackoverflow.com/oauth/access_token",
}
// golang.org/x/oauth2/stackoverflow
var Endpoint = oauth2.Endpoint{
AuthURL: "https://stackoverflow.com/oauth",
TokenURL: "https://stackoverflow.com/oauth/access_token",
}Package: golang.org/x/oauth2/stackoverflow
// golang.org/x/oauth2/foursquare
var Endpoint = oauth2.Endpoint{
AuthURL: "https://foursquare.com/oauth2/authorize",
TokenURL: "https://foursquare.com/oauth2/access_token",
}Package: golang.org/x/oauth2/foursquare
// golang.org/x/oauth2/mailchimp
var Endpoint = oauth2.Endpoint{
AuthURL: "https://login.mailchimp.com/oauth2/authorize",
TokenURL: "https://login.mailchimp.com/oauth2/token",
}Package: golang.org/x/oauth2/mailchimp
// golang.org/x/oauth2/mediamath
var Endpoint = oauth2.Endpoint{
AuthURL: "https://api.mediamath.com/oauth2/v1.0/authorize",
TokenURL: "https://api.mediamath.com/oauth2/v1.0/token",
}
var SandboxEndpoint = oauth2.Endpoint{
AuthURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/authorize",
TokenURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/token",
}Package: golang.org/x/oauth2/mediamath
// golang.org/x/oauth2/yandex
var Endpoint = oauth2.Endpoint{
AuthURL: "https://oauth.yandex.com/authorize",
TokenURL: "https://oauth.yandex.com/token",
}Package: golang.org/x/oauth2/yandex
// golang.org/x/oauth2/mailru
var Endpoint = oauth2.Endpoint{
AuthURL: "https://o2.mail.ru/login",
TokenURL: "https://o2.mail.ru/token",
}Package: golang.org/x/oauth2/mailru
// golang.org/x/oauth2/vk
var Endpoint = oauth2.Endpoint{
AuthURL: "https://oauth.vk.com/authorize",
TokenURL: "https://oauth.vk.com/access_token",
}Package: golang.org/x/oauth2/vk
// golang.org/x/oauth2/odnoklassniki
var Endpoint = oauth2.Endpoint{
AuthURL: "https://www.odnoklassniki.ru/oauth/authorize",
TokenURL: "https://api.odnoklassniki.ru/oauth/token.do",
}Package: golang.org/x/oauth2/odnoklassniki
// golang.org/x/oauth2/kakao
var Endpoint = oauth2.Endpoint{
AuthURL: "https://kauth.kakao.com/oauth/authorize",
TokenURL: "https://kauth.kakao.com/oauth/token",
}Package: golang.org/x/oauth2/kakao
func AzureADB2CEndpoint(tenant string, policy string) oauth2.EndpointExample:
endpoint := endpoints.AzureADB2CEndpoint("mytenant", "B2C_1_SignUpSignIn")func Shopify(host string) oauth2.EndpointExample:
endpoint := endpoints.Shopify("mystore.myshopify.com")func HipChatServer(host string) oauth2.Endpoint
// golang.org/x/oauth2/hipchat
func ServerEndpoint(host string) oauth2.EndpointExample:
endpoint := endpoints.HipChatServer("hipchat.company.com")func AsgardeoEndpoint(tenant string) oauth2.EndpointExample:
endpoint := endpoints.AsgardeoEndpoint("mytenant")var Apple = oauth2.Endpoint{
AuthURL: "https://appleid.apple.com/auth/authorize",
TokenURL: "https://appleid.apple.com/auth/token",
}
var Asana = oauth2.Endpoint{
AuthURL: "https://app.asana.com/-/oauth_authorize",
TokenURL: "https://app.asana.com/-/oauth_token",
}
var Battlenet = oauth2.Endpoint{
AuthURL: "https://battle.net/oauth/authorize",
TokenURL: "https://battle.net/oauth/token",
}
var Cern = oauth2.Endpoint{
AuthURL: "https://oauth.web.cern.ch/OAuth/Authorize",
TokenURL: "https://oauth.web.cern.ch/OAuth/Token",
}
var Coinbase = oauth2.Endpoint{
AuthURL: "https://login.coinbase.com/oauth2/auth",
TokenURL: "https://login.coinbase.com/oauth2/token",
}
var Line = oauth2.Endpoint{
AuthURL: "https://access.line.me/oauth2/v2.1/authorize",
TokenURL: "https://api.line.me/oauth2/v2.1/token",
}
var Naver = oauth2.Endpoint{
AuthURL: "https://nid.naver.com/oauth2.0/authorize",
TokenURL: "https://nid.naver.com/oauth2.0/token",
}
var OpenStreetMap = oauth2.Endpoint{
AuthURL: "https://www.openstreetmap.org/oauth2/authorize",
TokenURL: "https://www.openstreetmap.org/oauth2/token",
}
var Patreon = oauth2.Endpoint{
AuthURL: "https://www.patreon.com/oauth2/authorize",
TokenURL: "https://www.patreon.com/api/oauth2/token",
}
var Pinterest = oauth2.Endpoint{
AuthURL: "https://www.pinterest.com/oauth",
TokenURL: "https://api.pinterest.com/v5/oauth/token",
}
var QQ = oauth2.Endpoint{
AuthURL: "https://graph.qq.com/oauth2.0/authorize",
TokenURL: "https://graph.qq.com/oauth2.0/token",
}
var Rakuten = oauth2.Endpoint{
AuthURL: "https://app.rakuten.co.jp/services/authorize",
TokenURL: "https://app.rakuten.co.jp/services/token",
}
var Strava = oauth2.Endpoint{
AuthURL: "https://www.strava.com/oauth/authorize",
TokenURL: "https://www.strava.com/oauth/token",
}
var Yahoo = oauth2.Endpoint{
AuthURL: "https://api.login.yahoo.com/oauth2/request_auth",
TokenURL: "https://api.login.yahoo.com/oauth2/get_token",
}
var Zoom = oauth2.Endpoint{
AuthURL: "https://zoom.us/oauth/authorize",
TokenURL: "https://zoom.us/oauth/token",
}Packages: golang.org/x/oauth2/cern, golang.org/x/oauth2/hipchat, golang.org/x/oauth2/nokiahealth, golang.org/x/oauth2/yahoo
All 29 provider-specific packages: