Documentation
¶
Index ¶
- func JWTMiddleware(config *JWTConfig) gin.HandlerFunc
- func RequireRole(role string) gin.HandlerFunc
- type Claims
- type JWTClaims
- type JWTConfig
- type JWTMiddleware
- type JWTService
- func (js *JWTService) GenerateTokens(ctx context.Context, user UserInfo, sessionID string) (accessToken, refreshToken string, expiresAt time.Time, err error)
- func (js *JWTService) RefreshTokens(ctx context.Context, refreshTokenString string) (accessToken string, expiresAt time.Time, err error)
- func (js *JWTService) ValidateAccessToken(ctx context.Context, tokenString string) (*JWTClaims, error)
- type UserInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func JWTMiddleware ¶
func JWTMiddleware(config *JWTConfig) gin.HandlerFunc
JWTMiddleware crea middleware de autenticación JWT mejorado
func RequireRole ¶ added in v1.0.0
func RequireRole(role string) gin.HandlerFunc
RequireRole middleware que requiere un rol específico
Types ¶
type Claims ¶ added in v1.0.0
type Claims struct {
UserID string `json:"sub"`
TenantID string `json:"tenant_id"`
Role string `json:"role"`
Permissions []string `json:"permissions,omitempty"`
Email string `json:"email"`
SessionID string `json:"session_id,omitempty"`
TokenType string `json:"token_type"`
jwt.RegisteredClaims
}
Claims representa los claims del JWT token
type JWTClaims ¶ added in v1.0.0
type JWTClaims struct {
UserID string `json:"user_id"`
Email string `json:"email"`
Role string `json:"role"`
TenantID string `json:"tenant_id"`
SessionID string `json:"session_id"`
jwt.RegisteredClaims
}
JWTClaims represents the JWT claims structure
type JWTConfig ¶
type JWTConfig struct {
// Token configuration
SecretKey string
TokenLookup string // "header:Authorization,query:token,cookie:jwt"
TokenHeadName string // "Bearer"
TokenExpiration time.Duration
// Validation options
SkipPaths []string
RequiredClaims []string
AllowedIssuers []string
// Cache configuration for token blacklist/validation
CacheClient cache.Client
CachePrefix string
CacheTTL time.Duration
// Security options
EnableBlacklist bool
MaxTokensPerUser int
// Custom functions
SkipperFunc func(*gin.Context) bool
ClaimsFunc func(*gin.Context, *Claims)
ErrorHandler func(*gin.Context, error)
}
JWTConfig configuración del middleware JWT mejorada
func DefaultJWTConfig ¶
DefaultJWTConfig retorna configuración por defecto mejorada
type JWTMiddleware ¶
type JWTMiddleware struct {
// contains filtered or unexported fields
}
JWTMiddleware provides JWT authentication middleware
func NewJWTMiddleware ¶ added in v1.0.0
func NewJWTMiddleware(config config.JWTConfig, logger logger.Logger) *JWTMiddleware
NewJWTMiddleware creates a new JWT middleware
func (*JWTMiddleware) OptionalAuth ¶ added in v1.0.0
func (jm *JWTMiddleware) OptionalAuth() gin.HandlerFunc
OptionalAuth middleware that validates JWT token if present
func (*JWTMiddleware) RequireAuth ¶ added in v1.0.0
func (jm *JWTMiddleware) RequireAuth() gin.HandlerFunc
RequireAuth middleware that requires valid JWT token
func (*JWTMiddleware) RequireRole ¶ added in v1.0.0
func (jm *JWTMiddleware) RequireRole(roles ...string) gin.HandlerFunc
RequireRole middleware that requires specific role
func (*JWTMiddleware) RequireTenant ¶ added in v1.0.0
func (jm *JWTMiddleware) RequireTenant() gin.HandlerFunc
RequireTenant middleware that ensures request has tenant context
type JWTService ¶ added in v1.0.0
type JWTService struct {
// contains filtered or unexported fields
}
JWTService provides JWT token generation and validation
func NewJWTService ¶ added in v1.0.0
func NewJWTService(config config.JWTConfig, logger logger.Logger) *JWTService
NewJWTService creates a new JWT service
func (*JWTService) GenerateTokens ¶ added in v1.0.0
func (js *JWTService) GenerateTokens(ctx context.Context, user UserInfo, sessionID string) (accessToken, refreshToken string, expiresAt time.Time, err error)
GenerateTokens generates access and refresh tokens
func (*JWTService) RefreshTokens ¶ added in v1.0.0
func (js *JWTService) RefreshTokens(ctx context.Context, refreshTokenString string) (accessToken string, expiresAt time.Time, err error)
RefreshTokens validates refresh token and generates new access token
func (*JWTService) ValidateAccessToken ¶ added in v1.0.0
func (js *JWTService) ValidateAccessToken(ctx context.Context, tokenString string) (*JWTClaims, error)
ValidateAccessToken validates access token and returns claims