auth

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Index

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

func GetClaimsFromContext added in v1.0.0

func GetClaimsFromContext(c *gin.Context) (*Claims, error)

GetClaimsFromContext extrae los claims del contexto de Gin

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

func DefaultJWTConfig(secretKey string) *JWTConfig

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

type UserInfo added in v1.0.0

type UserInfo struct {
	ID       string
	Email    string
	Role     string
	TenantID string
}

UserInfo represents user information for token generation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL