auth

package
v0.8.0-rc4 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2022 License: MIT Imports: 14 Imported by: 71

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 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 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"`
}

AuthUser defines a standardized oauth2 user data structure.

type Discord added in v0.6.0

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

Discord allows authentication via Discord OAuth2.

func NewDiscordProvider added in v0.6.0

func NewDiscordProvider() *Discord

NewDiscordProvider creates a new Discord provider instance with some defaults.

func (Discord) AuthUrl added in v0.6.0

func (p Discord) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Discord) BuildAuthUrl added in v0.6.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Discord) Client added in v0.6.0

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

Client implements Provider.Client interface.

func (Discord) ClientId added in v0.6.0

func (p Discord) ClientId() string

ClientId implements Provider.ClientId interface.

func (Discord) ClientSecret added in v0.6.0

func (p Discord) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Discord) FetchAuthUser added in v0.6.0

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

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

func (Discord) FetchRawUserData added in v0.6.0

func (p Discord) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Discord) FetchToken added in v0.6.0

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

FetchToken implements Provider.FetchToken interface.

func (Discord) RedirectUrl added in v0.6.0

func (p Discord) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Discord) Scopes added in v0.6.0

func (p Discord) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Discord) SetAuthUrl added in v0.6.0

func (p Discord) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Discord) SetClientId added in v0.6.0

func (p Discord) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Discord) SetClientSecret added in v0.6.0

func (p Discord) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Discord) SetRedirectUrl added in v0.6.0

func (p Discord) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Discord) SetScopes added in v0.6.0

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

SetScopes implements Provider.SetScopes interface.

func (Discord) SetTokenUrl added in v0.6.0

func (p Discord) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Discord) SetUserApiUrl added in v0.6.0

func (p Discord) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Discord) TokenUrl added in v0.6.0

func (p Discord) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Discord) UserApiUrl added in v0.6.0

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.

func (Facebook) FetchRawUserData

func (p Facebook) FetchRawUserData(token *oauth2.Token, result any) 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 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.

func (Github) FetchRawUserData

func (p Github) FetchRawUserData(token *oauth2.Token, result any) 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.

func (Gitlab) FetchRawUserData

func (p Gitlab) FetchRawUserData(token *oauth2.Token, result any) 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, result any) 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 added in v0.8.0

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

Kakao allows authentication via Kakao OAuth2.

func NewKakaoProvider added in v0.8.0

func NewKakaoProvider() *Kakao

NewKakaoProvider creates a new Kakao provider instance with some defaults.

func (Kakao) AuthUrl added in v0.8.0

func (p Kakao) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Kakao) BuildAuthUrl added in v0.8.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Kakao) Client added in v0.8.0

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

Client implements Provider.Client interface.

func (Kakao) ClientId added in v0.8.0

func (p Kakao) ClientId() string

ClientId implements Provider.ClientId interface.

func (Kakao) ClientSecret added in v0.8.0

func (p Kakao) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Kakao) FetchAuthUser added in v0.8.0

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

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

func (Kakao) FetchRawUserData added in v0.8.0

func (p Kakao) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Kakao) FetchToken added in v0.8.0

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

FetchToken implements Provider.FetchToken interface.

func (Kakao) RedirectUrl added in v0.8.0

func (p Kakao) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Kakao) Scopes added in v0.8.0

func (p Kakao) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Kakao) SetAuthUrl added in v0.8.0

func (p Kakao) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Kakao) SetClientId added in v0.8.0

func (p Kakao) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Kakao) SetClientSecret added in v0.8.0

func (p Kakao) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Kakao) SetRedirectUrl added in v0.8.0

func (p Kakao) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Kakao) SetScopes added in v0.8.0

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

SetScopes implements Provider.SetScopes interface.

func (Kakao) SetTokenUrl added in v0.8.0

func (p Kakao) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Kakao) SetUserApiUrl added in v0.8.0

func (p Kakao) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Kakao) TokenUrl added in v0.8.0

func (p Kakao) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Kakao) UserApiUrl added in v0.8.0

func (p Kakao) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Microsoft added in v0.8.0

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

Microsoft allows authentication via AzureADEndpoint OAuth2.

func NewMicrosoftProvider added in v0.8.0

func NewMicrosoftProvider() *Microsoft

NewMicrosoftProvider creates new Microsoft AD provider instance with some defaults.

func (Microsoft) AuthUrl added in v0.8.0

func (p Microsoft) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Microsoft) BuildAuthUrl added in v0.8.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Microsoft) Client added in v0.8.0

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

Client implements Provider.Client interface.

func (Microsoft) ClientId added in v0.8.0

func (p Microsoft) ClientId() string

ClientId implements Provider.ClientId interface.

func (Microsoft) ClientSecret added in v0.8.0

func (p Microsoft) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Microsoft) FetchAuthUser added in v0.8.0

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

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

func (Microsoft) FetchRawUserData added in v0.8.0

func (p Microsoft) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Microsoft) FetchToken added in v0.8.0

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

FetchToken implements Provider.FetchToken interface.

func (Microsoft) RedirectUrl added in v0.8.0

func (p Microsoft) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Microsoft) Scopes added in v0.8.0

func (p Microsoft) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Microsoft) SetAuthUrl added in v0.8.0

func (p Microsoft) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Microsoft) SetClientId added in v0.8.0

func (p Microsoft) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Microsoft) SetClientSecret added in v0.8.0

func (p Microsoft) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Microsoft) SetRedirectUrl added in v0.8.0

func (p Microsoft) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Microsoft) SetScopes added in v0.8.0

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

SetScopes implements Provider.SetScopes interface.

func (Microsoft) SetTokenUrl added in v0.8.0

func (p Microsoft) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Microsoft) SetUserApiUrl added in v0.8.0

func (p Microsoft) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Microsoft) TokenUrl added in v0.8.0

func (p Microsoft) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Microsoft) UserApiUrl added in v0.8.0

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, result any) 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 added in v0.8.0

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

Spotify allows authentication via Spotify OAuth2.

func NewSpotifyProvider added in v0.8.0

func NewSpotifyProvider() *Spotify

NewSpotifyProvider creates a new Spotify provider instance with some defaults.

func (Spotify) AuthUrl added in v0.8.0

func (p Spotify) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Spotify) BuildAuthUrl added in v0.8.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Spotify) Client added in v0.8.0

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

Client implements Provider.Client interface.

func (Spotify) ClientId added in v0.8.0

func (p Spotify) ClientId() string

ClientId implements Provider.ClientId interface.

func (Spotify) ClientSecret added in v0.8.0

func (p Spotify) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Spotify) FetchAuthUser added in v0.8.0

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

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

func (Spotify) FetchRawUserData added in v0.8.0

func (p Spotify) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Spotify) FetchToken added in v0.8.0

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

FetchToken implements Provider.FetchToken interface.

func (Spotify) RedirectUrl added in v0.8.0

func (p Spotify) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Spotify) Scopes added in v0.8.0

func (p Spotify) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Spotify) SetAuthUrl added in v0.8.0

func (p Spotify) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Spotify) SetClientId added in v0.8.0

func (p Spotify) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Spotify) SetClientSecret added in v0.8.0

func (p Spotify) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Spotify) SetRedirectUrl added in v0.8.0

func (p Spotify) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Spotify) SetScopes added in v0.8.0

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

SetScopes implements Provider.SetScopes interface.

func (Spotify) SetTokenUrl added in v0.8.0

func (p Spotify) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Spotify) SetUserApiUrl added in v0.8.0

func (p Spotify) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Spotify) TokenUrl added in v0.8.0

func (p Spotify) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Spotify) UserApiUrl added in v0.8.0

func (p Spotify) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Twitch added in v0.8.0

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

Twitch allows authentication via Twitch OAuth2.

func NewTwitchProvider added in v0.8.0

func NewTwitchProvider() *Twitch

NewTwitchProvider creates new Twitch provider instance with some defaults.

func (Twitch) AuthUrl added in v0.8.0

func (p Twitch) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Twitch) BuildAuthUrl added in v0.8.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Twitch) Client added in v0.8.0

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

Client implements Provider.Client interface.

func (Twitch) ClientId added in v0.8.0

func (p Twitch) ClientId() string

ClientId implements Provider.ClientId interface.

func (Twitch) ClientSecret added in v0.8.0

func (p Twitch) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Twitch) FetchAuthUser added in v0.8.0

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

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

func (*Twitch) FetchRawUserData added in v0.8.0

func (p *Twitch) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

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

func (Twitch) FetchToken added in v0.8.0

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

FetchToken implements Provider.FetchToken interface.

func (Twitch) RedirectUrl added in v0.8.0

func (p Twitch) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Twitch) Scopes added in v0.8.0

func (p Twitch) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Twitch) SetAuthUrl added in v0.8.0

func (p Twitch) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Twitch) SetClientId added in v0.8.0

func (p Twitch) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Twitch) SetClientSecret added in v0.8.0

func (p Twitch) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Twitch) SetRedirectUrl added in v0.8.0

func (p Twitch) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Twitch) SetScopes added in v0.8.0

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

SetScopes implements Provider.SetScopes interface.

func (Twitch) SetTokenUrl added in v0.8.0

func (p Twitch) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Twitch) SetUserApiUrl added in v0.8.0

func (p Twitch) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Twitch) TokenUrl added in v0.8.0

func (p Twitch) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Twitch) UserApiUrl added in v0.8.0

func (p Twitch) UserApiUrl() string

UserApiUrl implements Provider.UserApiUrl interface.

type Twitter added in v0.6.0

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

Twitter allows authentication via Twitter OAuth2.

func NewTwitterProvider added in v0.6.0

func NewTwitterProvider() *Twitter

NewTwitterProvider creates new Twitter provider instance with some defaults.

func (Twitter) AuthUrl added in v0.6.0

func (p Twitter) AuthUrl() string

AuthUrl implements Provider.AuthUrl interface.

func (Twitter) BuildAuthUrl added in v0.6.0

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

BuildAuthUrl implements Provider.BuildAuthUrl interface.

func (Twitter) Client added in v0.6.0

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

Client implements Provider.Client interface.

func (Twitter) ClientId added in v0.6.0

func (p Twitter) ClientId() string

ClientId implements Provider.ClientId interface.

func (Twitter) ClientSecret added in v0.6.0

func (p Twitter) ClientSecret() string

ClientSecret implements Provider.ClientSecret interface.

func (*Twitter) FetchAuthUser added in v0.6.0

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

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

func (Twitter) FetchRawUserData added in v0.6.0

func (p Twitter) FetchRawUserData(token *oauth2.Token, result any) error

FetchRawUserData implements Provider.FetchRawUserData interface.

func (Twitter) FetchToken added in v0.6.0

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

FetchToken implements Provider.FetchToken interface.

func (Twitter) RedirectUrl added in v0.6.0

func (p Twitter) RedirectUrl() string

RedirectUrl implements Provider.RedirectUrl interface.

func (Twitter) Scopes added in v0.6.0

func (p Twitter) Scopes() []string

Scopes implements Provider.Scopes interface.

func (Twitter) SetAuthUrl added in v0.6.0

func (p Twitter) SetAuthUrl(url string)

SetAuthUrl implements Provider.SetAuthUrl interface.

func (Twitter) SetClientId added in v0.6.0

func (p Twitter) SetClientId(clientId string)

SetClientId implements Provider.SetClientId interface.

func (Twitter) SetClientSecret added in v0.6.0

func (p Twitter) SetClientSecret(secret string)

SetClientSecret implements Provider.SetClientSecret interface.

func (Twitter) SetRedirectUrl added in v0.6.0

func (p Twitter) SetRedirectUrl(url string)

SetRedirectUrl implements Provider.SetRedirectUrl interface.

func (Twitter) SetScopes added in v0.6.0

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

SetScopes implements Provider.SetScopes interface.

func (Twitter) SetTokenUrl added in v0.6.0

func (p Twitter) SetTokenUrl(url string)

SetTokenUrl implements Provider.SetTokenUrl interface.

func (Twitter) SetUserApiUrl added in v0.6.0

func (p Twitter) SetUserApiUrl(url string)

SetUserApiUrl implements Provider.SetUserApiUrl interface.

func (Twitter) TokenUrl added in v0.6.0

func (p Twitter) TokenUrl() string

TokenUrl implements Provider.TokenUrl interface.

func (Twitter) UserApiUrl added in v0.6.0

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