Versions in this module Expand all Collapse all v0 v0.24.0 Jun 24, 2026 Changes in this version + var ErrInvalidState = errors.New("oauth: invalid state") + var ErrTokenResponse = errors.New("oauth: token endpoint error") + var ErrUserInfoResponse = errors.New("oauth: userinfo endpoint error") + func Challenge(verifier string) string + func NewState() (string, error) + func NewVerifier() (string, error) + type Config struct + ClientID string + ClientSecret string + RedirectURL string + Scopes []string + type Provider struct + AuthURL string + TokenURL string + UserInfoURL string + func Generic(cfg Config, auth, token, userInfo string, mapper UserMapper) Provider + func GitHub(cfg Config) Provider + func Google(cfg Config) Provider + func (p *Provider) AuthCodeURL(state, challenge string, extra ...url.Values) string + func (p *Provider) Exchange(ctx context.Context, code, verifier string) (*Token, error) + func (p *Provider) User(ctx context.Context, tok *Token) (User, error) + func (p Provider) WithHTTPClient(c *http.Client) Provider + type StateSigner struct + func NewStateSigner(key []byte) *StateSigner + func (s *StateSigner) SignedState(ttl time.Duration) (string, error) + func (s *StateSigner) VerifyState(state string) error + type Token struct + AccessToken string + Expiry time.Time + IDToken string + RefreshToken string + TokenType string + func (t *Token) Valid() bool + type User struct + Avatar string + Email string + ID string + Name string + Raw map[string]any + type UserMapper func(raw []byte) (User, error)