Documentation
¶
Index ¶
- Variables
- func GetRoles(ctx abstract.Context) []string
- func GetString(ctx abstract.Context, key string) string
- func GetUserID(ctx abstract.Context) string
- func GetUsername(ctx abstract.Context) string
- func HasAllRoles(ctx abstract.Context, roles ...string) bool
- func HasAnyRole(ctx abstract.Context, roles ...string) bool
- func HasRole(ctx abstract.Context, role string) bool
- func NewAPIKey(config *APIKeyConfig) abstract.Middleware
- func NewBasicAuth(config *BasicAuthConfig) abstract.Middleware
- type APIKeyConfig
- type AuthMiddleware
- type BasicAuthConfig
- type Claims
- type Config
- type JWTConfig
- type JWTProvider
- func (p *JWTProvider) GenerateTokenPair(userID, username string, roles []string, extra map[string]any) (*TokenPair, error)
- func (p *JWTProvider) RefreshToken(refreshToken string) (*TokenPair, error)
- func (p *JWTProvider) RevokeAllUserTokens(ctx context.Context, userID string) error
- func (p *JWTProvider) RevokeToken(ctx context.Context, tokenID string) error
- func (p *JWTProvider) ValidateToken(tokenString string) (*Claims, error)
- type RefreshConfig
- type RefreshMiddleware
- type TokenBlacklist
- type TokenPair
- type TokenStore
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func GetUsername ¶
func NewAPIKey ¶
func NewAPIKey(config *APIKeyConfig) abstract.Middleware
func NewBasicAuth ¶
func NewBasicAuth(config *BasicAuthConfig) abstract.Middleware
Types ¶
type APIKeyConfig ¶
type AuthMiddleware ¶
type AuthMiddleware struct {
// contains filtered or unexported fields
}
func New ¶
func New(provider *JWTProvider, config *Config) *AuthMiddleware
func (*AuthMiddleware) AsMiddleware ¶
func (m *AuthMiddleware) AsMiddleware() abstract.Middleware
func (*AuthMiddleware) Handle ¶
func (m *AuthMiddleware) Handle(ctx abstract.Context, next func() error) error
func (*AuthMiddleware) WithRefresh ¶
func (m *AuthMiddleware) WithRefresh(config *RefreshConfig) *AuthMiddleware
type BasicAuthConfig ¶
type Claims ¶
type Config ¶
type Config struct {
TokenLookup string
TokenHeader string
AuthScheme string
ContextKey string
SkipPaths []string
SkipFunc func(ctx abstract.Context) bool
SuccessHandler func(ctx abstract.Context) error
ErrorHandler func(ctx abstract.Context, err error) error
}
func DefaultConfig ¶
func DefaultConfig() *Config
type JWTConfig ¶
type JWTConfig struct {
Secret string
SigningMethod jwt.SigningMethod
AccessTokenTTL time.Duration
RefreshTokenTTL time.Duration
Issuer string
Audience []string
}
func DefaultJWTConfig ¶
func DefaultJWTConfig() *JWTConfig
type JWTProvider ¶
type JWTProvider struct {
// contains filtered or unexported fields
}
func NewJWTProvider ¶
func NewJWTProvider(config *JWTConfig, store TokenStore) *JWTProvider
func (*JWTProvider) GenerateTokenPair ¶
func (*JWTProvider) RefreshToken ¶
func (p *JWTProvider) RefreshToken(refreshToken string) (*TokenPair, error)
func (*JWTProvider) RevokeAllUserTokens ¶
func (p *JWTProvider) RevokeAllUserTokens(ctx context.Context, userID string) error
func (*JWTProvider) RevokeToken ¶
func (p *JWTProvider) RevokeToken(ctx context.Context, tokenID string) error
func (*JWTProvider) ValidateToken ¶
func (p *JWTProvider) ValidateToken(tokenString string) (*Claims, error)
type RefreshConfig ¶
type RefreshConfig struct {
Enabled bool
Threshold time.Duration
RefreshHeaderName string
MaxRefreshCount int
}
func DefaultRefreshConfig ¶
func DefaultRefreshConfig() *RefreshConfig
type RefreshMiddleware ¶
type RefreshMiddleware struct {
// contains filtered or unexported fields
}
func NewRefreshMiddleware ¶
func NewRefreshMiddleware(provider *JWTProvider, config *RefreshConfig, blacklist TokenBlacklist) *RefreshMiddleware
func (*RefreshMiddleware) Handle ¶
func (m *RefreshMiddleware) Handle(ctx abstract.Context, next func() error) error
func (*RefreshMiddleware) WithRefreshEndpoint ¶
func (m *RefreshMiddleware) WithRefreshEndpoint(path string) abstract.RouteHandler
type TokenBlacklist ¶
Click to show internal directories.
Click to hide internal directories.