Documentation ¶
Overview ¶
package goath is an attempt to provide nice OAuth2 / OpenID Connect (OIDC) interface.
OAuth2 integration is provided in the "x" package. For OpenID Connect (OIDC) providers, please have a look at the other subpackages.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthCodeURLWithPKCE ¶ added in v0.2.0
func AuthCodeURLWithPKCE(authCodeURL func(state string, opts ...oauth2.AuthCodeOption) string, state string) (url, pkceVerifier string, err error)
AuthCodeURLWithPKCE is a helper method to generate PKCE codes and send the challenge to the provider (and returning the verifier for later user).
func SetStateCookie ¶ added in v0.2.0
func SetStateCookie(w http.ResponseWriter, intendedURL, prefix string)
SetStateCookie is used to set the state cookie, which stores the intended URL of the user before authentication.
Types ¶
type CallbackResult ¶ added in v0.2.0
type CallbackResult struct { // UnmarshalUser will unmarshal the JSON user returned by the provider // var user struct { // ID string `json:"sub"` // Email string `json:"email"` // Name string `json:"name"` // } // err = UnmarshalUser(&user) UnmarshalUser func(interface{}) error Token *oauth2.Token IntendedPath string }
type CookieEncrypter ¶ added in v0.2.0
type ExchangeHandler ¶ added in v0.2.0
type ExchangeHandler struct { CookiePrefix string CookieEncrypter CookieEncrypter }
ExchangeHandler implements the exchange-code flow (including PKCE challenge).
func (ExchangeHandler) HandleCallback ¶ added in v0.2.0
func (s ExchangeHandler) HandleCallback(w http.ResponseWriter, r *http.Request, provider Provider) (cr CallbackResult, clearCookies func(), err error)
HandleCallback should be called after the user logged in at the provider.
func (ExchangeHandler) RedirectToAuthCodeURL ¶ added in v0.2.0
func (s ExchangeHandler) RedirectToAuthCodeURL(w http.ResponseWriter, r *http.Request, provider Provider) error
RedirectToAuthCodeURL should be called to redirect the user to the provider for login.
type Provider ¶
type Provider interface { // SetRedirectURL sets the local callback URL. SetRedirectURL(url string) // AuthCodeURL returns the Provider URL to redirect the user to. AuthCodeURL(state string) (url, pkceVerifier string, err error) // Exchange exchanges the code and provides a way to unmarshal the user info. // // var user struct { // ID string `json:"sub"` // Email string `json:"email"` // Name string `json:"name"` // } // err = unmarshalUser(&user) Exchange(code, pkceVerifier string) (token *oauth2.Token, unmarshalUser func(interface{}) error, err error) }
Provider is an interface suitable for OAuth2 and OIDC flows.
Directories ¶
Path | Synopsis |
---|---|
package coreos provides a Provider for OpenID Connect (oidc), backed by the github.com/coreos/go-oidc/v3/oidc package.
|
package coreos provides a Provider for OpenID Connect (oidc), backed by the github.com/coreos/go-oidc/v3/oidc package. |
package goathtesting is used to test the different providers.
|
package goathtesting is used to test the different providers. |
package refresh uses the refresh-token as a remember token (stored encrypted in a dedicated cookie).
|
package refresh uses the refresh-token as a remember token (stored encrypted in a dedicated cookie). |
package x uses golang.org/x/oauth2 to implement a Provider for the OAuth2 flow.
|
package x uses golang.org/x/oauth2 to implement a Provider for the OAuth2 flow. |
package zitadel provides a Provider for OpenID Connect (oidc), backed by the github.com/zitadel/oidc/pkg/client package.
|
package zitadel provides a Provider for OpenID Connect (oidc), backed by the github.com/zitadel/oidc/pkg/client package. |