Documentation ¶
Index ¶
- Variables
- func GetHandlers(isLoggedIn func(*http.Request) bool, doneURL, callbackPath string, ...) (http.HandlerFunc, http.HandlerFunc)
- func HandleMultiOAuthCallback(doneURL string, clients []AppConf, saveInfo SaveInfoFunc, callbackPath string) http.HandlerFunc
- func HandleMultiOAuthLogin(isLoggedIn func(*http.Request) bool, doneURL string, clients []AppConf, ...) http.HandlerFunc
- func HandleOAuthCallback(idp Provider, appID, appSecret string, saveInfo SaveInfoFunc, ...) http.HandlerFunc
- func HandleOAuthLogin(isLoggedIn func(*http.Request) bool, doneURL string, idp Provider, ...) http.HandlerFunc
- type AppConf
- type Provider
- type SaveInfoFunc
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ProviderIDMap = map[string]Provider{ "amazon": Provider{ ID: "amazon", AuthorizeURL: "https://www.amazon.com/ap/oa", TokenURL: "https://api.amazon.com/auth/o2/token", MeURL: "https://api.amazon.com/user/profile", Scope: "profile", NameProp: "name", IDProp: "user_id", Logo: "https://unpkg.com/simple-icons@latest/icons/amazon.svg", Color: "#FF9900", }, "battle.net": Provider{ ID: "battle.net", AuthorizeURL: "https://us.battle.net/oauth/authorize", TokenURL: "https://us.battle.net/oauth/token", MeURL: "https://us.battle.net/oauth/userinfo", Scope: "openid", NameProp: "battletag", Logo: "https://unpkg.com/simple-icons@latest/icons/battle-dot-net.svg", Color: "#00AEFF", }, "discord": Provider{ ID: "discord", AuthorizeURL: "https://discordapp.com/api/oauth2/authorize", TokenURL: "https://discordapp.com/api/oauth2/token", MeURL: "https://discordapp.com/api/users/@me", Scope: "identify", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/discord.svg", Color: "#7289DA", }, "facebook": Provider{ ID: "facebook", AuthorizeURL: "https://graph.facebook.com/oauth/authorize", TokenURL: "https://graph.facebook.com/oauth/access_token", MeURL: "https://graph.facebook.com/me", NameProp: "name", Logo: "https://unpkg.com/simple-icons@latest/icons/facebook.svg", Color: "#1877F2", }, "github": Provider{ ID: "github", AuthorizeURL: "https://github.com/login/oauth/authorize", TokenURL: "https://github.com/login/oauth/access_token", MeURL: "https://api.github.com/user", Scope: "read:user", NameProp: "login", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/github.svg", Color: "#181717", }, "gitlab.com": Provider{ ID: "gitlab.com", AuthorizeURL: "https://gitlab.com/oauth/authorize", TokenURL: "https://gitlab.com/oauth/token", MeURL: "https://gitlab.com/api/v4/user", Scope: "read_user", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/gitlab.svg", Color: "#FCA121", }, "google": Provider{ ID: "google", AuthorizeURL: "https://accounts.google.com/o/oauth2/v2/auth", TokenURL: "https://www.googleapis.com/oauth2/v4/token", MeURL: "https://www.googleapis.com/oauth2/v1/userinfo?alt=json", Scope: "profile", NameProp: "name", Logo: "https://unpkg.com/simple-icons@latest/icons/google.svg", Color: "#4285F4", }, "microsoft": Provider{ ID: "microsoft", AuthorizeURL: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", TokenURL: "https://login.microsoftonline.com/common/oauth2/v2.0/token", MeURL: "https://graph.microsoft.com/v1.0/me/", Scope: "https://graph.microsoft.com/user.read", NameProp: "displayName", Logo: "https://unpkg.com/simple-icons@latest/icons/microsoft.svg", Color: "#666666", }, "reddit": Provider{ ID: "reddit", AuthorizeURL: "https://old.reddit.com/api/v1/authorize", TokenURL: "https://old.reddit.com/api/v1/access_token", MeURL: "https://oauth.reddit.com/api/v1/me", Scope: "identity", NameProp: "name", NamePrefix: "u/", Logo: "https://unpkg.com/simple-icons@latest/icons/reddit.svg", Color: "#FF4500", }, "_gitea": Provider{ ID: "gitea", AuthorizeURL: "https://{domain}/login/oauth/authorize", TokenURL: "https://{domain}/login/oauth/access_token", MeURL: "https://{domain}/api/v1/user", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/gitea.svg", Color: "#609926", }, "_gitlab": Provider{ ID: "gitlab", AuthorizeURL: "https://{domain}/oauth/authorize", TokenURL: "https://{domain}/oauth/token", MeURL: "https://{domain}/api/v4/user", Scope: "read_user", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/gitlab.svg", Color: "#FCA121", }, "_mastodon": Provider{ ID: "mastodon", AuthorizeURL: "https://{domain}/oauth/authorize", TokenURL: "https://{domain}/oauth/token", MeURL: "https://{domain}/api/v1/accounts/verify_credentials", Scope: "read:accounts", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/mastodon.svg", Color: "#3088D4", }, "_pleroma": Provider{ ID: "pleroma", AuthorizeURL: "https://{domain}/oauth/authorize", TokenURL: "https://{domain}/oauth/token", MeURL: "https://{domain}/api/v1/accounts/verify_credentials", Scope: "read:accounts", NameProp: "username", NamePrefix: "@", Logo: "https://unpkg.com/simple-icons@latest/icons/pleroma.svg", Color: "#FBA457", }, } )
Functions ¶
func GetHandlers ¶
func GetHandlers(isLoggedIn func(*http.Request) bool, doneURL, callbackPath string, clients *[]AppConf, saveInfo SaveInfoFunc) (http.HandlerFunc, http.HandlerFunc)
func HandleMultiOAuthCallback ¶
func HandleMultiOAuthCallback(doneURL string, clients []AppConf, saveInfo SaveInfoFunc, callbackPath string) http.HandlerFunc
func HandleMultiOAuthLogin ¶
func HandleOAuthCallback ¶
func HandleOAuthCallback(idp Provider, appID, appSecret string, saveInfo SaveInfoFunc, doneURL, callbackPath string) http.HandlerFunc
func HandleOAuthLogin ¶
Types ¶
type Provider ¶
type Provider struct { ID string `json:"id"` AuthorizeURL string `json:"authorize_url"` TokenURL string `json:"token_url"` MeURL string `json:"me_url"` Scope string `json:"scope"` NameProp string `json:"name_prop"` NamePrefix string `json:"name_prefix"` IDProp string `json:"id_prop"` Logo string `json:"logo"` Color string `json:"color"` }
type SaveInfoFunc ¶
Click to show internal directories.
Click to hide internal directories.