auth

package
v0.0.0-...-c627d9c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const NameDiscord string = "discord"

NameDiscord is the unique name of the Discord provider.

View Source
const NameFacebook string = "facebook"

NameFacebook is the unique name of the Facebook provider.

View Source
const NameGitee string = "gitee"

NameGitee is the unique name of the Gitee provider.

View Source
const NameGithub string = "github"

NameGithub is the unique name of the Github provider.

View Source
const NameGitlab string = "gitlab"

NameGitlab is the unique name of the Gitlab provider.

View Source
const NameGoogle string = "google"

NameGoogle is the unique name of the Google provider.

View Source
const NameKakao string = "kakao"

NameKakao is the unique name of the Kakao provider.

View Source
const NameMicrosoft string = "microsoft"

NameMicrosoft is the unique name of the Microsoft provider.

View Source
const NameSpotify string = "spotify"

NameSpotify is the unique name of the Spotify provider.

View Source
const NameStrava string = "strava"

NameStrava is the unique name of the Strava provider.

View Source
const NameTwitch string = "twitch"

NameTwitch is the unique name of the Twitch provider.

View Source
const NameTwitter string = "twitter"

NameTwitter is the unique name of the Twitter provider.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthUser

type AuthUser struct {
	Id          string         `json:"id"`
	Name        string         `json:"name"`
	Username    string         `json:"username"`
	Email       string         `json:"email"`
	AvatarUrl   string         `json:"avatarUrl"`
	RawUser     map[string]any `json:"rawUser"`
	AccessToken string         `json:"accessToken"`
}

AuthUser defines a standardized oauth2 user data structure.

type Discord

type Discord struct {
	// contains filtered or unexported fields
}

Discord allows authentication via Discord OAuth2.

func NewDiscordProvider

func NewDiscordProvider() *Discord

NewDiscordProvider creates a new Discord provider instance with some defaults.

func (Discord) AuthUrl

func (p Discord) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Discord) BuildAuthUrl

func (p Discord) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Discord) Client

func (p Discord) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Discord) ClientId

func (p Discord) ClientId() string

ClientId implements Provider.ClientId interface.

func (Discord) ClientSecret

func (p Discord) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Discord) FetchAuthUser

func (p *Discord) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance from Discord's user api.

API reference: https://discord.com/developers/docs/resources/user#user-object

func (Discord) FetchRawUserData

func (p Discord) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Discord) FetchToken

func (p Discord) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Discord) RedirectUrl

func (p Discord) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Discord) Scopes

func (p Discord) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Discord) SetAuthUrl

func (p Discord) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Discord) SetClientId

func (p Discord) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Discord) SetClientSecret

func (p Discord) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Discord) SetRedirectUrl

func (p Discord) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Discord) SetScopes

func (p Discord) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Discord) SetTokenUrl

func (p Discord) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Discord) SetUserApiUrl

func (p Discord) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Discord) TokenUrl

func (p Discord) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Discord) UserApiUrl

func (p Discord) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Facebook

type Facebook struct {
	// contains filtered or unexported fields
}

Facebook allows authentication via Facebook OAuth2.

func NewFacebookProvider

func NewFacebookProvider() *Facebook

NewFacebookProvider creates new Facebook provider instance with some defaults.

func (Facebook) AuthUrl

func (p Facebook) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Facebook) BuildAuthUrl

func (p Facebook) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Facebook) Client

func (p Facebook) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Facebook) ClientId

func (p Facebook) ClientId() string

ClientId implements Provider.ClientId interface.

func (Facebook) ClientSecret

func (p Facebook) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Facebook) FetchAuthUser

func (p *Facebook) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Facebook's user api.

API reference: https://developers.facebook.com/docs/graph-api/reference/user/

func (Facebook) FetchRawUserData

func (p Facebook) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Facebook) FetchToken

func (p Facebook) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Facebook) RedirectUrl

func (p Facebook) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Facebook) Scopes

func (p Facebook) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Facebook) SetAuthUrl

func (p Facebook) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Facebook) SetClientId

func (p Facebook) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Facebook) SetClientSecret

func (p Facebook) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Facebook) SetRedirectUrl

func (p Facebook) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Facebook) SetScopes

func (p Facebook) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Facebook) SetTokenUrl

func (p Facebook) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Facebook) SetUserApiUrl

func (p Facebook) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Facebook) TokenUrl

func (p Facebook) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Facebook) UserApiUrl

func (p Facebook) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Gitee

type Gitee struct {
	// contains filtered or unexported fields
}

Gitee allows authentication via Gitee OAuth2.

func NewGiteeProvider

func NewGiteeProvider() *Gitee

NewGiteeProvider creates new Gitee provider instance with some defaults.

func (Gitee) AuthUrl

func (p Gitee) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Gitee) BuildAuthUrl

func (p Gitee) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Gitee) Client

func (p Gitee) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Gitee) ClientId

func (p Gitee) ClientId() string

ClientId implements Provider.ClientId interface.

func (Gitee) ClientSecret

func (p Gitee) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Gitee) FetchAuthUser

func (p *Gitee) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based the Gitee's user api.

API reference: https://gitee.com/api/v5/swagger#/getV5User

func (Gitee) FetchRawUserData

func (p Gitee) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Gitee) FetchToken

func (p Gitee) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Gitee) RedirectUrl

func (p Gitee) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Gitee) Scopes

func (p Gitee) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Gitee) SetAuthUrl

func (p Gitee) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Gitee) SetClientId

func (p Gitee) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Gitee) SetClientSecret

func (p Gitee) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Gitee) SetRedirectUrl

func (p Gitee) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Gitee) SetScopes

func (p Gitee) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Gitee) SetTokenUrl

func (p Gitee) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Gitee) SetUserApiUrl

func (p Gitee) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Gitee) TokenUrl

func (p Gitee) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Gitee) UserApiUrl

func (p Gitee) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Github

type Github struct {
	// contains filtered or unexported fields
}

Github allows authentication via Github OAuth2.

func NewGithubProvider

func NewGithubProvider() *Github

NewGithubProvider creates new Github provider instance with some defaults.

func (Github) AuthUrl

func (p Github) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Github) BuildAuthUrl

func (p Github) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Github) Client

func (p Github) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Github) ClientId

func (p Github) ClientId() string

ClientId implements Provider.ClientId interface.

func (Github) ClientSecret

func (p Github) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Github) FetchAuthUser

func (p *Github) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based the Github's user api.

API reference: https://docs.github.com/en/rest/reference/users#get-the-authenticated-user

func (Github) FetchRawUserData

func (p Github) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Github) FetchToken

func (p Github) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Github) RedirectUrl

func (p Github) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Github) Scopes

func (p Github) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Github) SetAuthUrl

func (p Github) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Github) SetClientId

func (p Github) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Github) SetClientSecret

func (p Github) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Github) SetRedirectUrl

func (p Github) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Github) SetScopes

func (p Github) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Github) SetTokenUrl

func (p Github) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Github) SetUserApiUrl

func (p Github) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Github) TokenUrl

func (p Github) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Github) UserApiUrl

func (p Github) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Gitlab

type Gitlab struct {
	// contains filtered or unexported fields
}

Gitlab allows authentication via Gitlab OAuth2.

func NewGitlabProvider

func NewGitlabProvider() *Gitlab

NewGitlabProvider creates new Gitlab provider instance with some defaults.

func (Gitlab) AuthUrl

func (p Gitlab) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Gitlab) BuildAuthUrl

func (p Gitlab) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Gitlab) Client

func (p Gitlab) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Gitlab) ClientId

func (p Gitlab) ClientId() string

ClientId implements Provider.ClientId interface.

func (Gitlab) ClientSecret

func (p Gitlab) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Gitlab) FetchAuthUser

func (p *Gitlab) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based the Gitlab's user api.

API reference: https://docs.gitlab.com/ee/api/users.html#for-admin

func (Gitlab) FetchRawUserData

func (p Gitlab) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Gitlab) FetchToken

func (p Gitlab) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Gitlab) RedirectUrl

func (p Gitlab) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Gitlab) Scopes

func (p Gitlab) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Gitlab) SetAuthUrl

func (p Gitlab) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Gitlab) SetClientId

func (p Gitlab) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Gitlab) SetClientSecret

func (p Gitlab) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Gitlab) SetRedirectUrl

func (p Gitlab) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Gitlab) SetScopes

func (p Gitlab) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Gitlab) SetTokenUrl

func (p Gitlab) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Gitlab) SetUserApiUrl

func (p Gitlab) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Gitlab) TokenUrl

func (p Gitlab) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Gitlab) UserApiUrl

func (p Gitlab) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Google

type Google struct {
	// contains filtered or unexported fields
}

Google allows authentication via Google OAuth2.

func NewGoogleProvider

func NewGoogleProvider() *Google

NewGoogleProvider creates new Google provider instance with some defaults.

func (Google) AuthUrl

func (p Google) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Google) BuildAuthUrl

func (p Google) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Google) Client

func (p Google) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Google) ClientId

func (p Google) ClientId() string

ClientId implements Provider.ClientId interface.

func (Google) ClientSecret

func (p Google) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Google) FetchAuthUser

func (p *Google) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based the Google's user api.

func (Google) FetchRawUserData

func (p Google) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Google) FetchToken

func (p Google) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Google) RedirectUrl

func (p Google) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Google) Scopes

func (p Google) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Google) SetAuthUrl

func (p Google) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Google) SetClientId

func (p Google) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Google) SetClientSecret

func (p Google) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Google) SetRedirectUrl

func (p Google) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Google) SetScopes

func (p Google) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Google) SetTokenUrl

func (p Google) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Google) SetUserApiUrl

func (p Google) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Google) TokenUrl

func (p Google) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Google) UserApiUrl

func (p Google) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Kakao

type Kakao struct {
	// contains filtered or unexported fields
}

Kakao allows authentication via Kakao OAuth2.

func NewKakaoProvider

func NewKakaoProvider() *Kakao

NewKakaoProvider creates a new Kakao provider instance with some defaults.

func (Kakao) AuthUrl

func (p Kakao) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Kakao) BuildAuthUrl

func (p Kakao) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Kakao) Client

func (p Kakao) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Kakao) ClientId

func (p Kakao) ClientId() string

ClientId implements Provider.ClientId interface.

func (Kakao) ClientSecret

func (p Kakao) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Kakao) FetchAuthUser

func (p *Kakao) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Kakao's user api.

API reference: https://developers.kakao.com/docs/latest/en/kakaologin/rest-api#req-user-info-response

func (Kakao) FetchRawUserData

func (p Kakao) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Kakao) FetchToken

func (p Kakao) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Kakao) RedirectUrl

func (p Kakao) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Kakao) Scopes

func (p Kakao) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Kakao) SetAuthUrl

func (p Kakao) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Kakao) SetClientId

func (p Kakao) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Kakao) SetClientSecret

func (p Kakao) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Kakao) SetRedirectUrl

func (p Kakao) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Kakao) SetScopes

func (p Kakao) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Kakao) SetTokenUrl

func (p Kakao) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Kakao) SetUserApiUrl

func (p Kakao) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Kakao) TokenUrl

func (p Kakao) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Kakao) UserApiUrl

func (p Kakao) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Microsoft

type Microsoft struct {
	// contains filtered or unexported fields
}

Microsoft allows authentication via AzureADEndpoint OAuth2.

func NewMicrosoftProvider

func NewMicrosoftProvider() *Microsoft

NewMicrosoftProvider creates new Microsoft AD provider instance with some defaults.

func (Microsoft) AuthUrl

func (p Microsoft) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Microsoft) BuildAuthUrl

func (p Microsoft) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Microsoft) Client

func (p Microsoft) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Microsoft) ClientId

func (p Microsoft) ClientId() string

ClientId implements Provider.ClientId interface.

func (Microsoft) ClientSecret

func (p Microsoft) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Microsoft) FetchAuthUser

func (p *Microsoft) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Microsoft's user api.

API reference: https://learn.microsoft.com/en-us/azure/active-directory/develop/userinfo Graph explorer: https://developer.microsoft.com/en-us/graph/graph-explorer

func (Microsoft) FetchRawUserData

func (p Microsoft) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Microsoft) FetchToken

func (p Microsoft) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Microsoft) RedirectUrl

func (p Microsoft) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Microsoft) Scopes

func (p Microsoft) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Microsoft) SetAuthUrl

func (p Microsoft) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Microsoft) SetClientId

func (p Microsoft) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Microsoft) SetClientSecret

func (p Microsoft) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Microsoft) SetRedirectUrl

func (p Microsoft) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Microsoft) SetScopes

func (p Microsoft) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Microsoft) SetTokenUrl

func (p Microsoft) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Microsoft) SetUserApiUrl

func (p Microsoft) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Microsoft) TokenUrl

func (p Microsoft) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Microsoft) UserApiUrl

func (p Microsoft) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Provider

type Provider interface {
	// Scopes returns the provider access permissions that will be requested.
	Scopes() []string

	// SetScopes sets the provider access permissions that will be requested later.
	SetScopes(scopes []string)

	// ClientId returns the provider client's app ID.
	ClientId() string

	// SetClientId sets the provider client's ID.
	SetClientId(clientId string)

	// ClientSecret returns the provider client's app secret.
	ClientSecret() string

	// SetClientSecret sets the provider client's app secret.
	SetClientSecret(secret string)

	// RedirectUrl returns the end address to redirect the user
	// going through the OAuth flow.
	RedirectUrl() string

	// SetRedirectUrl sets the provider's RedirectUrl.
	SetRedirectUrl(url string)

	// AuthUrl returns the provider's authorization service url.
	AuthUrl() string

	// SetAuthUrl sets the provider's AuthUrl.
	SetAuthUrl(url string)

	// TokenUrl returns the provider's token exchange service url.
	TokenUrl() string

	// SetTokenUrl sets the provider's TokenUrl.
	SetTokenUrl(url string)

	// UserApiUrl returns the provider's user info api url.
	UserApiUrl() string

	// SetUserApiUrl sets the provider's UserApiUrl.
	SetUserApiUrl(url string)

	// Client returns an http client using the provided token.
	Client(token *oauth2.Token) *http.Client

	// BuildAuthUrl returns a URL to the provider's consent page
	// that asks for permissions for the required scopes explicitly.
	BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

	// FetchToken converts an authorization code to token.
	FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

	// FetchRawUserData requests and marshalizes into `result` the
	// the OAuth user api response.
	FetchRawUserData(token *oauth2.Token) ([]byte, error)

	// FetchAuthUser is similar to FetchRawUserData, but normalizes and
	// marshalizes the user api response into a standardized AuthUser struct.
	FetchAuthUser(token *oauth2.Token) (user *AuthUser, err error)
}

Provider defines a common interface for an OAuth2 client.

func NewProviderByName

func NewProviderByName(name string) (Provider, error)

NewProviderByName returns a new preconfigured provider instance by its name identifier.

type Spotify

type Spotify struct {
	// contains filtered or unexported fields
}

Spotify allows authentication via Spotify OAuth2.

func NewSpotifyProvider

func NewSpotifyProvider() *Spotify

NewSpotifyProvider creates a new Spotify provider instance with some defaults.

func (Spotify) AuthUrl

func (p Spotify) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Spotify) BuildAuthUrl

func (p Spotify) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Spotify) Client

func (p Spotify) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Spotify) ClientId

func (p Spotify) ClientId() string

ClientId implements Provider.ClientId interface.

func (Spotify) ClientSecret

func (p Spotify) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Spotify) FetchAuthUser

func (p *Spotify) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Spotify's user api.

API reference: https://developer.spotify.com/documentation/web-api/reference/#/operations/get-current-users-profile

func (Spotify) FetchRawUserData

func (p Spotify) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Spotify) FetchToken

func (p Spotify) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Spotify) RedirectUrl

func (p Spotify) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Spotify) Scopes

func (p Spotify) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Spotify) SetAuthUrl

func (p Spotify) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Spotify) SetClientId

func (p Spotify) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Spotify) SetClientSecret

func (p Spotify) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Spotify) SetRedirectUrl

func (p Spotify) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Spotify) SetScopes

func (p Spotify) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Spotify) SetTokenUrl

func (p Spotify) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Spotify) SetUserApiUrl

func (p Spotify) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Spotify) TokenUrl

func (p Spotify) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Spotify) UserApiUrl

func (p Spotify) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Strava

type Strava struct {
	// contains filtered or unexported fields
}

Strava allows authentication via Strava OAuth2.

func NewStravaProvider

func NewStravaProvider() *Strava

NewStravaProvider creates new Strava provider instance with some defaults.

func (Strava) AuthUrl

func (p Strava) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Strava) BuildAuthUrl

func (p Strava) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Strava) Client

func (p Strava) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Strava) ClientId

func (p Strava) ClientId() string

ClientId implements Provider.ClientId interface.

func (Strava) ClientSecret

func (p Strava) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Strava) FetchAuthUser

func (p *Strava) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Strava's user api.

API reference: https://developers.strava.com/docs/authentication/

func (Strava) FetchRawUserData

func (p Strava) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Strava) FetchToken

func (p Strava) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Strava) RedirectUrl

func (p Strava) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Strava) Scopes

func (p Strava) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Strava) SetAuthUrl

func (p Strava) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Strava) SetClientId

func (p Strava) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Strava) SetClientSecret

func (p Strava) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Strava) SetRedirectUrl

func (p Strava) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Strava) SetScopes

func (p Strava) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Strava) SetTokenUrl

func (p Strava) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Strava) SetUserApiUrl

func (p Strava) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Strava) TokenUrl

func (p Strava) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Strava) UserApiUrl

func (p Strava) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Twitch

type Twitch struct {
	// contains filtered or unexported fields
}

Twitch allows authentication via Twitch OAuth2.

func NewTwitchProvider

func NewTwitchProvider() *Twitch

NewTwitchProvider creates new Twitch provider instance with some defaults.

func (Twitch) AuthUrl

func (p Twitch) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Twitch) BuildAuthUrl

func (p Twitch) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Twitch) Client

func (p Twitch) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Twitch) ClientId

func (p Twitch) ClientId() string

ClientId implements Provider.ClientId interface.

func (Twitch) ClientSecret

func (p Twitch) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Twitch) FetchAuthUser

func (p *Twitch) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based the Twitch's user api.

API reference: https://dev.twitch.tv/docs/api/reference#get-users

func (*Twitch) FetchRawUserData

func (p *Twitch) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

This differ from baseProvider because Twitch requires the `Client-Id` header.

func (Twitch) FetchToken

func (p Twitch) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Twitch) RedirectUrl

func (p Twitch) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Twitch) Scopes

func (p Twitch) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Twitch) SetAuthUrl

func (p Twitch) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Twitch) SetClientId

func (p Twitch) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Twitch) SetClientSecret

func (p Twitch) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Twitch) SetRedirectUrl

func (p Twitch) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Twitch) SetScopes

func (p Twitch) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Twitch) SetTokenUrl

func (p Twitch) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Twitch) SetUserApiUrl

func (p Twitch) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Twitch) TokenUrl

func (p Twitch) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Twitch) UserApiUrl

func (p Twitch) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Twitter

type Twitter struct {
	// contains filtered or unexported fields
}

Twitter allows authentication via Twitter OAuth2.

func NewTwitterProvider

func NewTwitterProvider() *Twitter

NewTwitterProvider creates new Twitter provider instance with some defaults.

func (Twitter) AuthUrl

func (p Twitter) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Twitter) BuildAuthUrl

func (p Twitter) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Twitter) Client

func (p Twitter) Client(token *oauth2.Token) *http.Client

Client implements Provider.Client interface.

func (Twitter) ClientId

func (p Twitter) ClientId() string

ClientId implements Provider.ClientId interface.

func (Twitter) ClientSecret

func (p Twitter) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Twitter) FetchAuthUser

func (p *Twitter) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)

FetchAuthUser returns an AuthUser instance based on the Twitter's user api.

API reference: https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-me

func (Twitter) FetchRawUserData

func (p Twitter) FetchRawUserData(token *oauth2.Token) ([]byte, error)

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Twitter) FetchToken

func (p Twitter) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)

FetchToken implements Provider.FetchToken interface.

func (Twitter) RedirectUrl

func (p Twitter) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Twitter) Scopes

func (p Twitter) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Twitter) SetAuthUrl

func (p Twitter) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Twitter) SetClientId

func (p Twitter) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Twitter) SetClientSecret

func (p Twitter) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Twitter) SetRedirectUrl

func (p Twitter) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Twitter) SetScopes

func (p Twitter) SetScopes(scopes []string)

SetScopes implements Provider.SetScopes interface.

func (Twitter) SetTokenUrl

func (p Twitter) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Twitter) SetUserApiUrl

func (p Twitter) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Twitter) TokenUrl

func (p Twitter) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Twitter) UserApiUrl

func (p Twitter) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL