externalauth
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Index¶
- func IsGithubDotComURL(str string) bool
- func IsInvalidTokenError(err error) bool
- type AppInstallation
- type Config
- func (c *Config) AppInstallations(ctx context.Context, token string) ([]codersdk.ExternalAuthAppInstallation, bool, error)
- func (c *Config) GenerateTokenExtra(token *oauth2.Token) (pqtype.NullRawMessage, error)
- func (c *Config) RefreshToken(ctx context.Context, db database.Store, ...) (database.ExternalAuthLink, error)
- func (c *Config) ValidateToken(ctx context.Context, link *oauth2.Token) (bool, *codersdk.ExternalAuthUser, error)
- type DeviceAuth
- type ExchangeDeviceCodeResponse
- type InvalidTokenError
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
funcIsGithubDotComURL¶added inv2.14.0
IsGithubDotComURL returns true if the given URL is a github.com URL.
funcIsInvalidTokenError¶added inv2.13.0
Types¶
typeAppInstallation¶
typeConfig¶
type Config struct {promoauth.InstrumentedOAuth2Config// ID is a unique identifier for the authenticator.IDstring// Type is the type of provider.Typestring// DeviceAuth is set if the provider uses the device flow.DeviceAuth *DeviceAuth// DisplayName is the name of the provider to display to the user.DisplayNamestring// DisplayIcon is the path to an image that will be displayed to the user.DisplayIconstring// ExtraTokenKeys is a list of extra properties to// store in the database returned from the token endpoint.//// e.g. Slack returns `authed_user` in the token which is// a payload that contains information about the authenticated// user.ExtraTokenKeys []string// NoRefresh stops Coder from using the refresh token// to renew the access token.//// Some organizations have security policies that require// re-authentication for every token.NoRefreshbool// ValidateURL ensures an access token is valid before// returning it to the user. If omitted, tokens will// not be validated before being returned.ValidateURLstring// Regex is a Regexp matched against URLs for// a Git clone. e.g. "Username for 'https://github.com':"// The regex would be `github\.com`..Regex *regexp.Regexp// AppInstallURL is for GitHub App's (and hopefully others eventually)// to provide a link to install the app. There's installation// of the application, and user authentication. It's possible// for the user to authenticate but the application to not.AppInstallURLstring// AppInstallationsURL is an API endpoint that returns a list of// installations for the user. This is used for GitHub Apps.AppInstallationsURLstring}
Config is used for authentication for Git operations.
funcConvertConfig¶
func ConvertConfig(instrument *promoauth.Factory, entries []codersdk.ExternalAuthConfig, accessURL *url.URL) ([]*Config,error)
ConvertConfig converts the SDK configuration entry formatto the parsed and ready-to-consume in coderd provider type.
func (*Config)AppInstallations¶
func (c *Config) AppInstallations(ctxcontext.Context, tokenstring) ([]codersdk.ExternalAuthAppInstallation,bool,error)
AppInstallations returns a list of app installations for the given token.If the provider does not support app installations, it returns nil.
func (*Config)GenerateTokenExtra¶added inv2.3.0
GenerateTokenExtra generates the extra token data to store in the database.
func (*Config)RefreshToken¶
func (c *Config) RefreshToken(ctxcontext.Context, dbdatabase.Store, externalAuthLinkdatabase.ExternalAuthLink) (database.ExternalAuthLink,error)
RefreshToken automatically refreshes the token if expired and permitted.If an error is returned, the token is either invalid, or an error occurred.Use 'IsInvalidTokenError(err)' to determine the difference.
typeDeviceAuth¶
type DeviceAuth struct {// Config is provided for the http client method.Configpromoauth.InstrumentedOAuth2ConfigClientIDstringTokenURLstringScopes []stringCodeURLstring}
func (*DeviceAuth)AuthorizeDevice¶
func (c *DeviceAuth) AuthorizeDevice(ctxcontext.Context) (*codersdk.ExternalAuthDevice,error)
AuthorizeDevice begins the device authorization flow.See:https://tools.ietf.org/html/rfc8628#section-3.1
func (*DeviceAuth)ExchangeDeviceCode¶
ExchangeDeviceCode exchanges a device code for an access token.The boolean returned indicates whether the device code is still pendingand the caller should try again.
typeInvalidTokenError¶added inv2.13.0
type InvalidTokenErrorstring
InvalidTokenError is a case where the "RefreshToken" failed to completeas a result of invalid credentials. Error contains the reason of the failure.
func (InvalidTokenError)Error¶added inv2.13.0
func (eInvalidTokenError) Error()string