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.