Documentation
¶
Index ¶
- Variables
- func TokenExpiry(tok *oauth2.Token) time.Time
- type Client
- func (c *Client) AuthCodeURL(ctx context.Context, opts ...oauth2.AuthCodeOption) (string, error)
- func (c *Client) HandleCallback(ctx context.Context, r *http.Request) (*Tokens, *IDTokenClaims, error)
- func (c *Client) LogoutURL(idTokenHint string, postLogoutRedirect string) (string, error)
- func (c *Client) UserInfo(ctx context.Context, token *oauth2.Token) (*gooidc.UserInfo, error)
- func (c *Client) VerifyToken(ctx context.Context, raw string) (*IDTokenClaims, error)
- type Config
- type Endpoints
- type IDTokenClaims
- type Tokens
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNilConfig = errors.New("oidc config cannot be nil") ErrMissingIssuer = errors.New("oidc issuer is required for discovery or verification") ErrMissingClientID = errors.New("oidc client id is required") ErrMissingRedirectURL = errors.New("oidc redirect url is required") ErrMissingSession = errors.New("oidc session manager is required") ErrMissingState = errors.New("oidc state not found in session") ErrInvalidState = errors.New("oidc state mismatch") ErrMissingCode = errors.New("oidc authorization code is missing") ErrMissingNonce = errors.New("oidc nonce not found in session") ErrMissingVerifier = errors.New("oidc pkce verifier not found in session") ErrMissingIDToken = errors.New("oidc id_token is missing") )
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) AuthCodeURL ¶
AuthCodeURL builds the authorization URL and stores state/nonce/verifier in session.
func (*Client) HandleCallback ¶
func (c *Client) HandleCallback(ctx context.Context, r *http.Request) (*Tokens, *IDTokenClaims, error)
HandleCallback validates state, exchanges code, and verifies the ID token.
func (*Client) VerifyToken ¶
VerifyToken verifies a raw ID token and returns parsed claims.
type Config ¶
type Config struct {
Issuer string
ClientID string
ClientSecret string
RedirectURL string
Scopes []string
Endpoints *Endpoints
Session *session.Manager
}
Config controls OIDC client initialization.
type IDTokenClaims ¶
type IDTokenClaims struct {
Issuer string `json:"iss"`
Subject string `json:"sub"`
Audience []string `json:"aud"`
Expiry int64 `json:"exp"`
IssuedAt int64 `json:"iat"`
Nonce string `json:"nonce"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
Name string `json:"name"`
GivenName string `json:"given_name"`
FamilyName string `json:"family_name"`
Picture string `json:"picture"`
Locale string `json:"locale"`
}
func (IDTokenClaims) ExpiryTime ¶
func (c IDTokenClaims) ExpiryTime() time.Time
Click to show internal directories.
Click to hide internal directories.