Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNeedMountURL occurs when a mount url is not specified ErrNeedMountURL = errors.New("must specify a mount url") // ErrNeedClientID occurs when a client id is not specified ErrNeedClientID = errors.New("must specify a client id") // ErrNeedClientSecret occurs when a client secret is not specified ErrNeedClientSecret = errors.New("must specify a client secret") // ErrNeedSecretKey occurs when a secret key is not specified ErrNeedSecretKey = errors.New("must specify a secret key") // ErrInvalidRedirect occurs when we have a non-whitelisted // redirect parameter ErrInvalidRedirect = errors.New("bad redirect value") // ErrInvalidStateValue occurs when we the state returned // by the provider fails JWT validation ErrInvalidStateValue = errors.New("bad state value") // ErrInvalidCodeValue occurs when we the code returned // by the provider is blank ErrInvalidCodeValue = errors.New("bad code value") // ErrInvalidToken occurs when we the token returned after the exchange // by the provider is bad ErrInvalidToken = errors.New("invalid token") // MessageMountURLParsingFailed occurs when we can't parse the URL provided // by MountURL MessageMountURLParsingFailed = "parsing mount url failed" // MessageStateCookieRetrieval occurs when we can't retrieve the state cookie after // the redirect from the provider MessageStateCookieRetrieval = "failed to get oauth state cookie" // MessageExchangeFailed occurs when we can't finish the exchange for the longer lived // tokens from the provider MessageExchangeFailed = "exchange failed" // MessageUserFailed occurs when we can't get information about the user from // the provider MessageUserFailed = "user retrieval failed" // MessageStateGenerationFailed occurs when we can't generate the state cookie for some // reason MessageStateGenerationFailed = "state generation failed" // MessageTokenRejected is displayed when a token handed back from Google has been rejected // for some reason, often due to an Audience or Domain mismatch MessageTokenRejected = "The token received was rejected, make sure you signed in with the right account." )
Functions ¶
This section is empty.
Types ¶
type Callbacks ¶
type Callbacks interface { // OnError is invoked when any error is encountered in the handlers OnError(w http.ResponseWriter, err error) // OnSuccess is invoked when an id token is retrieved for the first // time at the end of an OAuth flow OnSuccess(w http.ResponseWriter, location, raw string, claims *verifier.StandardClaims) // OnInvalidToken is invoked when an id token is determined to be invalid // based off of the verification configuration passed into the handler OnInvalidToken(w http.ResponseWriter, err error) // OnRefresh is invoked when an id token is successfully refreshed // in middleware OnRefresh(w http.ResponseWriter, raw string) error }
Callbacks encapsulate the state handling logic when the flow endpoints/middleware either encounter an error, success, or get a refreshed token
type Config ¶
type Config struct { // ClientTimeout is the timeout for doing the OAuth token exchange // if none is specified, defaults to 10 seconds ClientTimeout time.Duration // Verifier specifies the JWT verifier for the id token Verifier *verifier.Verifier // TokenManager manages token storage TokenManager TokenManager // Callbacks manage the error/success handling of the endpoint Callbacks Callbacks // AllowedRedirects whitelists where we can redirect to after getting a token AllowedRedirects []string // Logger is a zerolog instance used for logging Logger *zerolog.Logger // ClientID is the Google Client ID ClientID string // ClientSecret is the Google Client Secret ClientSecret string // MountURL is the URL where this handler is mounted MountURL string // SecretKey is the secret for JWT generation for state management SecretKey string // contains filtered or unexported fields }
Config is a configuration object for OAuth handlers.
type Handler ¶
Handler handles oauth2 authentication requests.
func (*Handler) AuthenticationMiddleware ¶
func (h *Handler) AuthenticationMiddleware(requireAuth bool, unauthorizedHandler func(w http.ResponseWriter)) func(http.Handler) http.Handler
AuthenticationMiddleware provides a mechanism for validating tokens passed in Authorization headers
func (*Handler) Claims ¶
func (h *Handler) Claims(ctx context.Context) *verifier.StandardClaims
Claims returns claims if they exist on the context
func (*Handler) MustClaims ¶
func (h *Handler) MustClaims(ctx context.Context) *verifier.StandardClaims
MustClaims panics if no claims exist on the context
Click to show internal directories.
Click to hide internal directories.