Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientCredentialsTokenSource ¶
type ClientCredentialsTokenSource struct { TokenURL string ClientID string ClientSecret string CustomAudiences []string }
ClientCredentialsTokenSource encapsulates parameters required to issue a Client Credentials OIDC request and return a token
func (ClientCredentialsTokenSource) GetToken ¶
func (ccts ClientCredentialsTokenSource) GetToken() (string, error)
GetToken issues a request to an OIDC-compliant token endpoint to perform the Client Credentials flow in exchange for an access token.
type StandardClaims ¶
type StandardClaims struct { Audience []string `json:"aud,omitempty"` ExpiresAt int64 `json:"exp,omitempty"` ID string `json:"jti,omitempty"` IssuedAt int64 `json:"iat,omitempty"` Issuer string `json:"iss,omitempty"` NotBefore int64 `json:"nbf,omitempty"` Subject string `json:"sub,omitempty"` }
StandardClaims is forked from golang-jwt/jwt.StandardClaims, except Audience is an array here per the actual spec:
In the general case, the "aud" value is an array of case-sensitive strings, each containing a StringOrURI value. In the special case when the JWT has one audience, the "aud" value MAY be a single case-sensitive string containing a StringOrURI value. The interpretation of audience values is generally application specific. Use of this claim is OPTIONAL.
https://tools.ietf.org/html/rfc7519#section-4.1
func (StandardClaims) Valid ¶
func (c StandardClaims) Valid() error
Valid implements jwt.Claims interface
type TokenClaims ¶
type TokenClaims struct { Name string `json:"name,omitempty"` Nickname string `json:"nickname,omitempty"` Email string `json:"email,omitempty"` EmailVerified bool `json:"email_verified"` Picture string `json:"picture,omitempty"` Nonce string `json:"nonce,omitempty"` UpdatedAt int64 `json:"updated_at,omitempty"` // NOTE: Auth0 treats this as a string, but OIDC says this is seconds since the Unix Epoch StandardClaims // TODO: not sure if this is the right place for this, but didn't come up with a clever interface // to use with GeneratePlexUserToken etc yet. With omitempty, it shouldn't affect anything else when unused ImpersonatedBy string `json:"impersonated_by,omitempty"` }
TokenClaims represents the claims made by a token, and is also used by the UserInfo endpoint to return standard OIDC user claims.
type TokenResponse ¶
type TokenResponse struct { AccessToken string `json:"access_token,omitempty"` TokenType string `json:"token_type,omitempty"` RefreshToken string `json:"refresh_token,omitempty"` ExpiresIn int `json:"expires_in,omitempty"` IDToken string `json:"id_token,omitempty"` ErrorType string `json:"error,omitempty"` ErrorDesc string `json:"error_description,omitempty"` }
TokenResponse is an OIDC-compliant response from a token endpoint. (either token exchange or resource owner password credential flow). See https://datatracker.ietf.org/doc/html/rfc6749#section-5.1. ErrorType will be non-empty if error.
type TokenSource ¶
TokenSource describes a source of JWTs for jsonclient etc