 Documentation
      ¶
      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