Documentation
¶
Overview ¶
Package oauthstore provides a driver-agnostic fosite storage backed by database/sql. It works on PostgreSQL, MySQL/MariaDB and SQLite (Turso/ libSQL): queries are written with $n placeholders and translated per dialect, timestamps are stored as UTC RFC3339 text (lexicographically ordered) and list columns as JSON text, so no driver-specific types leak in.
Index ¶
- type Store
- func (s *Store) Authenticate(ctx context.Context, clientID, secret string) (string, error)
- func (s *Store) ClientAssertionJWTValid(ctx context.Context, jti string) error
- func (s *Store) CreateAccessTokenSession(ctx context.Context, signature string, req fosite.Requester) error
- func (s *Store) CreateAuthorizeCodeSession(ctx context.Context, code string, req fosite.Requester) error
- func (s *Store) CreateOpenIDConnectSession(ctx context.Context, authorizeCode string, requester fosite.Requester) error
- func (s *Store) CreatePKCERequestSession(ctx context.Context, signature string, req fosite.Requester) error
- func (s *Store) CreateRefreshTokenSession(ctx context.Context, signature, _ string, req fosite.Requester) error
- func (s *Store) DeleteAccessTokenSession(ctx context.Context, signature string) error
- func (s *Store) DeleteOpenIDConnectSession(ctx context.Context, authorizeCode string) error
- func (s *Store) DeletePKCERequestSession(ctx context.Context, signature string) error
- func (s *Store) DeleteRefreshTokenSession(ctx context.Context, signature string) error
- func (s *Store) GetAccessTokenSession(ctx context.Context, signature string, _ fosite.Session) (fosite.Requester, error)
- func (s *Store) GetAuthorizeCodeSession(ctx context.Context, code string, _ fosite.Session) (fosite.Requester, error)
- func (s *Store) GetClient(ctx context.Context, id string) (fosite.Client, error)
- func (s *Store) GetOpenIDConnectSession(ctx context.Context, authorizeCode string, _ fosite.Requester) (fosite.Requester, error)
- func (s *Store) GetPKCERequestSession(ctx context.Context, signature string, _ fosite.Session) (fosite.Requester, error)
- func (s *Store) GetPublicKey(context.Context, string, string, string) (*jose.JSONWebKey, error)
- func (s *Store) GetPublicKeyScopes(context.Context, string, string, string) ([]string, error)
- func (s *Store) GetPublicKeys(context.Context, string, string) (*jose.JSONWebKeySet, error)
- func (s *Store) GetRefreshTokenSession(ctx context.Context, signature string, _ fosite.Session) (fosite.Requester, error)
- func (s *Store) InvalidateAuthorizeCodeSession(ctx context.Context, code string) error
- func (s *Store) IsJWTUsed(context.Context, string) (bool, error)
- func (s *Store) MarkJWTUsedForTime(context.Context, string, time.Time) error
- func (s *Store) RevokeAccessToken(ctx context.Context, requestID string) error
- func (s *Store) RevokeRefreshToken(ctx context.Context, requestID string) error
- func (s *Store) RotateRefreshToken(ctx context.Context, requestID, refreshTokenSignature string) error
- func (s *Store) SetClientAssertionJWT(ctx context.Context, jti string, exp time.Time) error
- type StringSlice
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store implements the fosite storage interfaces over database/sql.
func NewStore ¶
NewStore builds a store for the given YAML driver ("postgres", "mysql", "turso", "turso-serverless", "libsql", ...).
func (*Store) Authenticate ¶
func (*Store) ClientAssertionJWTValid ¶
func (*Store) CreateAccessTokenSession ¶
func (*Store) CreateAuthorizeCodeSession ¶
func (*Store) CreateOpenIDConnectSession ¶
func (*Store) CreatePKCERequestSession ¶
func (*Store) CreateRefreshTokenSession ¶
func (*Store) DeleteAccessTokenSession ¶
func (*Store) DeleteOpenIDConnectSession ¶
func (*Store) DeletePKCERequestSession ¶
func (*Store) DeleteRefreshTokenSession ¶
func (*Store) GetAccessTokenSession ¶
func (*Store) GetAuthorizeCodeSession ¶
func (*Store) GetOpenIDConnectSession ¶
func (*Store) GetPKCERequestSession ¶
func (*Store) GetPublicKey ¶
func (*Store) GetPublicKeyScopes ¶
func (*Store) GetPublicKeys ¶
func (*Store) GetRefreshTokenSession ¶
func (*Store) InvalidateAuthorizeCodeSession ¶
func (*Store) MarkJWTUsedForTime ¶
func (*Store) RevokeAccessToken ¶
func (*Store) RevokeRefreshToken ¶
func (*Store) RotateRefreshToken ¶
type StringSlice ¶
type StringSlice []string
StringSlice stores a []string as a JSON text column so the same schema works on every driver.
func (*StringSlice) Scan ¶
func (s *StringSlice) Scan(value any) error