Documentation
¶
Index ¶
- Constants
- Variables
- func Module(opts ...di.Node) di.Node
- func SubjectFromContext(c fiber.Ctx) (string, error)
- func UseDefaultAccessExtractors(exs ...Extractor) di.Node
- func UseDefaultRefreshExtractors(exs ...Extractor) di.Node
- func UseRedisRevocation(opts ...RedisRevocationOption) di.Node
- func UseRedisRevocationWithNamespace(keyPrefix string, namespace string) di.Node
- func UseRefreshRoute(path string, opts ...RefreshRouteOption) di.Node
- func UseRevocationStore(store RevocationStore) di.Node
- type Claims
- type Config
- type CookiePairDelivererConfig
- type Extractor
- func Chain(extractors ...Extractor) Extractor
- func FromAuthHeader(authScheme string) Extractor
- func FromCookie(key string) Extractor
- func FromCustom(key string, fn func(fiber.Ctx) (string, error)) Extractor
- func FromForm(param string) Extractor
- func FromHeader(header string) Extractor
- func FromParam(param string) Extractor
- func FromQuery(param string) Extractor
- type HeaderPairDelivererConfig
- type Manager
- type PairDeliverFunc
- type PairDeliverer
- type PairDelivererResolver
- type PairDelivererResolverFunc
- type RedisRevocationOption
- type RedisRevocationStore
- type RefreshHandler
- func (h *RefreshHandler) Handle(r web.Router)
- func (h *RefreshHandler) Refresh(c fiber.Ctx) error
- func (h *RefreshHandler) WithDeliverer(deliverer PairDeliverer) *RefreshHandler
- func (h *RefreshHandler) WithDelivererResolver(resolver PairDelivererResolver) *RefreshHandler
- func (h *RefreshHandler) WithPath(path string) *RefreshHandler
- type RefreshRouteOption
- type RevocationStore
- type Service
- func (s *Service) AccessMiddleware(exs ...Extractor) fiber.Handler
- func (s *Service) GenerateTokenPair(subject string, additionalAccessClaims map[string]any) (*TokenPair, error)
- func (s *Service) RefreshMiddleware(exs ...Extractor) fiber.Handler
- func (s *Service) RefreshTokenPair(refreshToken string, additionalAccessClaims map[string]any) (*TokenPair, error)
- func (s *Service) RevokeClaims(ctx context.Context, claims Claims) error
- func (s *Service) RevokeFromContext(c fiber.Ctx) error
- func (s *Service) RevokeToken(ctx context.Context, tokenValue string) error
- func (s *Service) SetDefaultAccessExtractors(exs ...Extractor)
- func (s *Service) SetDefaultRefreshExtractors(exs ...Extractor)
- func (s *Service) SetRevocationStore(store RevocationStore)
- func (s *Service) ValidateToken(tokenValue string, expectedType string) (Claims, error)
- type ServiceOption
- type TokenPair
Constants ¶
View Source
const ( TokenTypeAccess = "access" TokenTypeRefresh = "refresh" )
Variables ¶
View Source
var ( ErrRevocationStoreNotConfigured = fmt.Errorf("token: revocation store not configured") ErrMissingTokenJTI = fmt.Errorf("token: missing jti in token") ErrMissingTokenExp = fmt.Errorf("token: missing exp in token") ErrTokenRevoked = fmt.Errorf("token: token revoked") )
View Source
var ( ErrMissingSecret = errors.New("token: missing secret") ErrInvalidClaims = errors.New("token: invalid claims") ErrInvalidTokenType = errors.New("token: invalid token type") ErrMissingTokenSub = errors.New("token: missing subject in token") ErrUnexpectedTokenAlg = errors.New("token: unexpected signing method") )
View Source
var ErrTokenMissingInContext = errors.New("token: token missing from fiber context")
Functions ¶
func UseRedisRevocation ¶
func UseRedisRevocation(opts ...RedisRevocationOption) di.Node
func UseRefreshRoute ¶
func UseRefreshRoute(path string, opts ...RefreshRouteOption) di.Node
func UseRevocationStore ¶
func UseRevocationStore(store RevocationStore) di.Node
Types ¶
type Claims ¶
type Extractor ¶
type Extractor = fiberextractors.Extractor
func FromAuthHeader ¶
func FromCookie ¶
func FromHeader ¶
type Manager ¶
type Manager interface {
GenerateTokenPair(subject string, additionalAccessClaims map[string]any) (*TokenPair, error)
RefreshTokenPair(refreshToken string, additionalAccessClaims map[string]any) (*TokenPair, error)
ValidateToken(tokenValue string, expectedType string) (Claims, error)
AccessMiddleware(extractors ...Extractor) fiber.Handler
RefreshMiddleware(extractors ...Extractor) fiber.Handler
RevokeToken(ctx context.Context, tokenValue string) error
RevokeFromContext(c fiber.Ctx) error
}
Manager is the auth token contract used by handlers/middleware wiring. Service is the current JWT implementation; future PASETO impl can satisfy this too.
type PairDeliverFunc ¶
type PairDeliverer ¶
func CookiePairDeliverer ¶
func CookiePairDeliverer(cfg CookiePairDelivererConfig) PairDeliverer
func HeaderPairDeliverer ¶
func HeaderPairDeliverer(cfg HeaderPairDelivererConfig) PairDeliverer
func JSONPairDeliverer ¶
func JSONPairDeliverer() PairDeliverer
type PairDelivererResolver ¶
type PairDelivererResolver interface {
Resolve(c fiber.Ctx) PairDeliverer
}
func DefaultRefreshPairDelivererResolver ¶
func DefaultRefreshPairDelivererResolver() PairDelivererResolver
func JSONOnlyPairDelivererResolver ¶
func JSONOnlyPairDelivererResolver() PairDelivererResolver
func WebCookieOrJSONPairDelivererResolver ¶
func WebCookieOrJSONPairDelivererResolver() PairDelivererResolver
type PairDelivererResolverFunc ¶
type PairDelivererResolverFunc func(c fiber.Ctx) PairDeliverer
func (PairDelivererResolverFunc) Resolve ¶
func (f PairDelivererResolverFunc) Resolve(c fiber.Ctx) PairDeliverer
type RedisRevocationOption ¶
type RedisRevocationOption func(*redisRevocationOptions)
func WithRedisRevocationKeyPrefix ¶
func WithRedisRevocationKeyPrefix(keyPrefix string) RedisRevocationOption
func WithRedisRevocationNamespace ¶
func WithRedisRevocationNamespace(namespace string) RedisRevocationOption
type RedisRevocationStore ¶
type RedisRevocationStore struct {
// contains filtered or unexported fields
}
func NewRedisRevocationStore ¶
func NewRedisRevocationStore(client rd.StringManager, keyPrefix string) *RedisRevocationStore
func NewRedisRevocationStoreWithNamespace ¶
func NewRedisRevocationStoreWithNamespace(client rd.StringManager, keyPrefix string, namespace string) *RedisRevocationStore
type RefreshHandler ¶
type RefreshHandler struct {
// contains filtered or unexported fields
}
func NewRefreshHandler ¶
func NewRefreshHandler(service Manager) *RefreshHandler
func (*RefreshHandler) Handle ¶
func (h *RefreshHandler) Handle(r web.Router)
func (*RefreshHandler) WithDeliverer ¶
func (h *RefreshHandler) WithDeliverer(deliverer PairDeliverer) *RefreshHandler
func (*RefreshHandler) WithDelivererResolver ¶
func (h *RefreshHandler) WithDelivererResolver(resolver PairDelivererResolver) *RefreshHandler
func (*RefreshHandler) WithPath ¶
func (h *RefreshHandler) WithPath(path string) *RefreshHandler
type RefreshRouteOption ¶
type RefreshRouteOption func(*RefreshHandler)
func WithRefreshPairDeliverer ¶
func WithRefreshPairDeliverer(deliverer PairDeliverer) RefreshRouteOption
func WithRefreshPairDelivererResolver ¶
func WithRefreshPairDelivererResolver(resolver PairDelivererResolver) RefreshRouteOption
type RevocationStore ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func (*Service) AccessMiddleware ¶
func (*Service) GenerateTokenPair ¶
func (*Service) RefreshMiddleware ¶
func (*Service) RefreshTokenPair ¶
func (*Service) RevokeClaims ¶
func (*Service) RevokeToken ¶
func (*Service) SetDefaultAccessExtractors ¶
func (*Service) SetDefaultRefreshExtractors ¶
func (*Service) SetRevocationStore ¶
func (s *Service) SetRevocationStore(store RevocationStore)
type ServiceOption ¶
type ServiceOption func(*Service)
Click to show internal directories.
Click to hide internal directories.