Documentation
¶
Overview ¶
Package oauth2cli provides better user experience on OAuth 2.0 and OpenID Connect (OIDC) on CLI. It allows simple and easy user interaction with Authorization Code Grant Flow and a local server.
Index ¶
Constants ¶
View Source
const DefaultLocalServerSuccessHTML = `` /* 474-byte string literal not displayed */
DefaultLocalServerSuccessHTML is a default response body on authorization success.
Variables ¶
This section is empty.
Functions ¶
func GetToken ¶ added in v1.4.0
GetToken performs the Authorization Code Grant Flow and returns a token received from the provider. See https://tools.ietf.org/html/rfc6749#section-4.1
This performs the following steps:
- Start a local server at the port.
- Open a browser and navigate it to the local server.
- Wait for the user authorization.
- Receive a code via an authorization response (HTTP redirect).
- Exchange the code and a token.
- Return the code.
Types ¶
type Config ¶ added in v1.4.0
type Config struct {
// OAuth2 config.
// If the RedirectURL field is not set, default to http://localhost with the allocated port and LocalServerCallbackPath.
// If the RedirectURL field is set, make sure it matches the LocalServerBindAddress and LocalServerCallbackPath.
OAuth2Config oauth2.Config
// Options for an authorization request.
// You can set oauth2.AccessTypeOffline or oauth2.S256ChallengeOption.
AuthCodeOptions []oauth2.AuthCodeOption
// Options for a token request.
// You can set oauth2.VerifierOption.
TokenRequestOptions []oauth2.AuthCodeOption
// State parameter in the authorization request.
// Default to a string of random 32 bytes.
State string
// Candidates of hostname and port which the local server binds to.
// You can set port number to 0 to allocate a free port.
// If multiple addresses are given, it will try the ports in order.
// If nil or an empty slice is given, it defaults to "127.0.0.1:0" i.e. a free port.
LocalServerBindAddress []string
// A PEM-encoded certificate, and possibly the complete certificate chain.
// When set, the server will serve TLS traffic using the specified
// certificates. It's recommended that the public key's SANs contain
// the loopback addresses - 'localhost', '127.0.0.1' and '::1'
LocalServerCertFile string
// A PEM-encoded private key for the certificate.
// This is required when LocalServerCertFile is set.
LocalServerKeyFile string
// Callback path of the local server.
// If your provider requires a specific path of the redirect URL, set this field.
// Default to none.
LocalServerCallbackPath string
// Response HTML body on authorization completed.
// Default to DefaultLocalServerSuccessHTML.
LocalServerSuccessHTML string
// Middleware for the local server.
// Default to none.
LocalServerMiddleware func(h http.Handler) http.Handler
// A channel to send the local server URL when it is ready.
// Default to none.
LocalServerReadyChan chan<- string
// Redirect URL upon successful login
SuccessRedirectURL string
// Redirect URL upon failed login
FailureRedirectURL string
// Logger function for debug.
Logf func(format string, args ...interface{})
}
Config represents a config for GetToken.
Directories
¶
| Path | Synopsis |
|---|---|
|
e2e_test
|
|
|
authserver
Package authserver provides a stub server of the OAuth 2.0 authorization server.
|
Package authserver provides a stub server of the OAuth 2.0 authorization server. |
|
Package oauth2params provides the generators of parameters such as state and PKCE.
|
Package oauth2params provides the generators of parameters such as state and PKCE. |
Click to show internal directories.
Click to hide internal directories.