oidc

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

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

func TokenExpiry

func TokenExpiry(tok *oauth2.Token) time.Time

TokenExpiry returns the expiry time for the access token when present.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, cfg *Config) (*Client, error)

func (*Client) AuthCodeURL

func (c *Client) AuthCodeURL(ctx context.Context, opts ...oauth2.AuthCodeOption) (string, error)

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) LogoutURL

func (c *Client) LogoutURL(idTokenHint string, postLogoutRedirect string) (string, error)

LogoutURL returns the provider logout URL if configured.

func (*Client) UserInfo

func (c *Client) UserInfo(ctx context.Context, token *oauth2.Token) (*gooidc.UserInfo, error)

UserInfo fetches userinfo for the given token when supported.

func (*Client) VerifyToken

func (c *Client) VerifyToken(ctx context.Context, raw string) (*IDTokenClaims, error)

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 Endpoints

type Endpoints struct {
	AuthURL   string
	TokenURL  string
	LogoutURL string
	JWKsURL   string
}

Endpoints overrides discovered endpoints when provided.

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

type Tokens

type Tokens struct {
	OAuth2 *oauth2.Token
	RawID  string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL