Documentation
¶
Index ¶
- Constants
- type AuthUser
- type Facebook
- func (p Facebook) AuthUrl() string
- func (p Facebook) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string
- func (p Facebook) Client(token *oauth2.Token) *http.Client
- func (p Facebook) ClientId() string
- func (p Facebook) ClientSecret() string
- func (p *Facebook) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)
- func (p Facebook) FetchRawUserData(token *oauth2.Token, result any) error
- func (p Facebook) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (p Facebook) RedirectUrl() string
- func (p Facebook) Scopes() []string
- func (p Facebook) SetAuthUrl(url string)
- func (p Facebook) SetClientId(clientId string)
- func (p Facebook) SetClientSecret(secret string)
- func (p Facebook) SetRedirectUrl(url string)
- func (p Facebook) SetScopes(scopes []string)
- func (p Facebook) SetTokenUrl(url string)
- func (p Facebook) SetUserApiUrl(url string)
- func (p Facebook) TokenUrl() string
- func (p Facebook) UserApiUrl() string
- type Github
- func (p Github) AuthUrl() string
- func (p Github) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string
- func (p Github) Client(token *oauth2.Token) *http.Client
- func (p Github) ClientId() string
- func (p Github) ClientSecret() string
- func (p *Github) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)
- func (p Github) FetchRawUserData(token *oauth2.Token, result any) error
- func (p Github) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (p Github) RedirectUrl() string
- func (p Github) Scopes() []string
- func (p Github) SetAuthUrl(url string)
- func (p Github) SetClientId(clientId string)
- func (p Github) SetClientSecret(secret string)
- func (p Github) SetRedirectUrl(url string)
- func (p Github) SetScopes(scopes []string)
- func (p Github) SetTokenUrl(url string)
- func (p Github) SetUserApiUrl(url string)
- func (p Github) TokenUrl() string
- func (p Github) UserApiUrl() string
- type Gitlab
- func (p Gitlab) AuthUrl() string
- func (p Gitlab) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string
- func (p Gitlab) Client(token *oauth2.Token) *http.Client
- func (p Gitlab) ClientId() string
- func (p Gitlab) ClientSecret() string
- func (p *Gitlab) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)
- func (p Gitlab) FetchRawUserData(token *oauth2.Token, result any) error
- func (p Gitlab) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (p Gitlab) RedirectUrl() string
- func (p Gitlab) Scopes() []string
- func (p Gitlab) SetAuthUrl(url string)
- func (p Gitlab) SetClientId(clientId string)
- func (p Gitlab) SetClientSecret(secret string)
- func (p Gitlab) SetRedirectUrl(url string)
- func (p Gitlab) SetScopes(scopes []string)
- func (p Gitlab) SetTokenUrl(url string)
- func (p Gitlab) SetUserApiUrl(url string)
- func (p Gitlab) TokenUrl() string
- func (p Gitlab) UserApiUrl() string
- type Google
- func (p Google) AuthUrl() string
- func (p Google) BuildAuthUrl(state string, opts ...oauth2.AuthCodeOption) string
- func (p Google) Client(token *oauth2.Token) *http.Client
- func (p Google) ClientId() string
- func (p Google) ClientSecret() string
- func (p *Google) FetchAuthUser(token *oauth2.Token) (*AuthUser, error)
- func (p Google) FetchRawUserData(token *oauth2.Token, result any) error
- func (p Google) FetchToken(code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)
- func (p Google) RedirectUrl() string
- func (p Google) Scopes() []string
- func (p Google) SetAuthUrl(url string)
- func (p Google) SetClientId(clientId string)
- func (p Google) SetClientSecret(secret string)
- func (p Google) SetRedirectUrl(url string)
- func (p Google) SetScopes(scopes []string)
- func (p Google) SetTokenUrl(url string)
- func (p Google) SetUserApiUrl(url string)
- func (p Google) TokenUrl() string
- func (p Google) UserApiUrl() string
- type Provider
Constants ¶
const NameFacebook string = "facebook"
NameFacebook is the unique name of the Facebook provider.
const NameGithub string = "github"
NameGithub is the unique name of the Github provider.
const NameGitlab string = "gitlab"
NameGitlab is the unique name of the Gitlab provider.
const NameGoogle string = "google"
NameGoogle is the unique name of the Google 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"`
Email string `json:"email"`
AvatarUrl string `json:"avatarUrl"`
}
AuthUser defines a standardized oauth2 user data structure.
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) 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 ¶
FetchAuthUser returns an AuthUser instance based on the Facebook's user api.
func (Facebook) FetchRawUserData ¶
FetchRawUserData implements Provider.FetchRawUserData interface.
func (Facebook) FetchToken ¶
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) 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 ¶
FetchAuthUser returns an AuthUser instance based the Github's user api.
func (Github) FetchRawUserData ¶
FetchRawUserData implements Provider.FetchRawUserData interface.
func (Github) FetchToken ¶
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) 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 ¶
FetchAuthUser returns an AuthUser instance based the Gitlab's user api.
func (Gitlab) FetchRawUserData ¶
FetchRawUserData implements Provider.FetchRawUserData interface.
func (Gitlab) FetchToken ¶
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) 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 ¶
FetchAuthUser returns an AuthUser instance based the Google's user api.
func (Google) FetchRawUserData ¶
FetchRawUserData implements Provider.FetchRawUserData interface.
func (Google) FetchToken ¶
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 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 ¶
NewProviderByName returns a new preconfigured provider instance by its name identifier.