Documentation ¶
Overview ¶
Package gitlab implements the OAuth2 protocol for authenticating users through gitlab. This package can be used as a reference implementation of an OAuth2 provider for Goth.
Index ¶
- Variables
- func ContextClient(ctx context.Context) *http.Client
- type AuthCodeOption
- type Config
- type ContextKey
- type Endpoint
- type Provider
- func (p *Provider) BeginAuth(state string) (goth.Session, error)
- func (p *Provider) Client() *http.Client
- func (p *Provider) Debug(debug bool)
- func (p *Provider) FetchUser(session goth.Session) (goth.User, error)
- func (p *Provider) Name() string
- func (p *Provider) RefreshToken(refreshToken string) (*oauth2.Token, error)
- func (p *Provider) RefreshTokenAvailable() bool
- func (p *Provider) SetName(name string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- type RetrieveError
- type Session
- type Token
Constants ¶
This section is empty.
Variables ¶
var ( AppAuthURL = "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal/" AuthURL = "https://open.feishu.cn/open-apis/authen/v1/index" TokenURL = "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal/" ProfileURL = "https://open.feishu.cn/open-apis/authen/v1/access_token" )
These vars define the Authentication, Token, and Profile URLS for Gitlab. If using Gitlab CE or EE, you should change these values before calling New.
Examples:
gitlab.AuthURL = "https://gitlab.acme.com/oauth/authorize gitlab.TokenURL = "https://gitlab.acme.com/oauth/token gitlab.ProfileURL = "https://gitlab.acme.com/api/v3/user
Functions ¶
Types ¶
type AuthCodeOption ¶ added in v1.63.8
type AuthCodeOption interface {
// contains filtered or unexported methods
}
type Config ¶ added in v1.63.8
type Config struct { // ClientID is the application's ID. AppID string // ClientSecret is the application's secret. AppSecret string AppToken string // Endpoint contains the resource server's token endpoint // URLs. These are constants specific to each server and are // often available via site-specific packages, such as // google.Endpoint or github.Endpoint. Endpoint Endpoint // RedirectURL is the URL to redirect users going through // the OAuth flow, after the resource owner's URLs. RedirectURL string // Scope specifies optional requested permissions. Scopes []string }
func (*Config) AuthCodeURL ¶ added in v1.63.9
func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string
type ContextKey ¶ added in v1.63.8
type ContextKey struct{}
ContextKey is just an empty struct. It exists so HTTPClient can be an immutable public variable with a unique type. It's immutable because nobody else can create a ContextKey, being unexported.
var HTTPClient ContextKey
HTTPClient is the context key to use with golang.org/x/net/context's WithValue function to associate an *http.Client value with a context.
type Provider ¶
type Provider struct { ClientKey string Secret string AppToken string CallbackURL string HTTPClient *http.Client // contains filtered or unexported fields }
Provider is the implementation of `goth.Provider` for accessing Gitlab.
func New ¶
New creates a new Gitlab provider and sets up important connection details. You should always call `gitlab.New` to get a new provider. Never try to create one manually.
func NewCustomisedURL ¶
func NewCustomisedURL(clientKey, secret, callbackURL, authURL, tokenURL, profileURL string, scopes ...string) *Provider
NewCustomisedURL is similar to New(...) but can be used to set custom URLs to connect to
func (*Provider) RefreshToken ¶
RefreshToken get new access token based on the refresh token
func (*Provider) RefreshTokenAvailable ¶
RefreshTokenAvailable refresh token is provided by auth provider or not
type RetrieveError ¶ added in v1.63.8
type RetrieveError struct { Response *http.Response // Body is the body that was consumed by reading Response.Body. // It may be truncated. Body []byte }
func (*RetrieveError) Error ¶ added in v1.63.8
func (r *RetrieveError) Error() string
type Session ¶
Session stores data during the auth process with Gitlab.
func (*Session) Authorize ¶
Authorize the session with Gitlab and return the access token to be stored for future use.
func (Session) GetAuthURL ¶
GetAuthURL will return the URL set by calling the `BeginAuth` function on the Gitlab provider.
type Token ¶ added in v1.63.8
type Token struct { // AccessToken is the token that authorizes and authenticates // the requests. AccessToken string `json:"app_access_token"` // TokenType is the type of token. // The Type method returns either this or "Bearer", the default. TokenType string `json:"token_type,omitempty"` // RefreshToken is a token that's used by the application // (as opposed to the user) to refresh the access token // if it expires. RefreshToken string `json:"refresh_token,omitempty"` // Expiry is the optional expiration time of the access token. // // If zero, TokenSource implementations will reuse the same // token forever and RefreshToken or equivalent // mechanisms for that TokenSource will not be used. Expiry time.Time `json:"expiry,omitempty"` // raw optionally contains extra metadata from the server // when updating a token. Raw interface{} }