Documentation
¶
Index ¶
- func ErrInvalidConfigWithDetails(field, message string) error
- func ExtractTokenFromRequest(req interface{}) string
- type AuthKit
- func (a *AuthKit) Close() error
- func (a *AuthKit) Config() *Config
- func (a *AuthKit) CreateUser(ctx context.Context, user *contracts.User) error
- func (a *AuthKit) GenerateToken(ctx context.Context, claims *contracts.Claims) (string, error)
- func (a *AuthKit) GenerateTokenForUser(ctx context.Context, userID string) (string, error)
- func (a *AuthKit) GetUser(ctx context.Context, userID string) (*contracts.User, error)
- func (a *AuthKit) GetUserByEmail(ctx context.Context, email string) (*contracts.User, error)
- func (a *AuthKit) GetUserByUsername(ctx context.Context, username string) (*contracts.User, error)
- func (a *AuthKit) HasPermission(ctx context.Context, userID, resource, action string) (bool, error)
- func (a *AuthKit) HasRole(ctx context.Context, userID, roleName string) (bool, error)
- func (a *AuthKit) HasScope(ctx context.Context, scopes []string, required string) bool
- func (a *AuthKit) IsInitialized() bool
- func (a *AuthKit) RefreshToken(ctx context.Context, refreshToken string) (string, error)
- func (a *AuthKit) RevokeToken(ctx context.Context, token string) error
- func (a *AuthKit) TokenGenerator() contracts.TokenGenerator
- func (a *AuthKit) TokenValidator() contracts.TokenValidator
- func (a *AuthKit) UseJWTProvider(provider contracts.JWTProvider)
- func (a *AuthKit) UseOAuth2Provider(provider contracts.OAuth2Provider)
- func (a *AuthKit) UsePermissionProvider(provider contracts.PermissionProvider)
- func (a *AuthKit) UseStorageProvider(provider contracts.StorageProvider)
- func (a *AuthKit) UseTokenManager(manager contracts.TokenManager)
- func (a *AuthKit) UseUserProvider(provider contracts.UserProvider)
- func (a *AuthKit) ValidateCredentials(ctx context.Context, username, password string) (*contracts.User, error)
- func (a *AuthKit) ValidateToken(ctx context.Context, token string) (*contracts.Claims, error)
- type Config
- type Option
- func WithAPIKeyExpiry(expiry time.Duration) Option
- func WithAPIKeyHeader(header string) Option
- func WithAPIKeyLength(length int) Option
- func WithAPIKeyLocation(location string) Option
- func WithAPIKeyPrefix(prefix string) Option
- func WithAudience(audience ...string) Option
- func WithBearerPrefix(prefix string) Option
- func WithCache(enabled bool) Option
- func WithCacheTTL(ttl time.Duration) Option
- func WithClockSkew(skew time.Duration) Option
- func WithDebug(enabled bool) Option
- func WithHTTPS(required bool) Option
- func WithIssuer(issuer string) Option
- func WithJWTKeys(privateKey *rsa.PrivateKey, publicKey *rsa.PublicKey) Option
- func WithJWTSecret(secret []byte) Option
- func WithJWTSigningMethod(method string) Option
- func WithLogLevel(level string) Option
- func WithMaxSessions(max int) Option
- func WithOAuth2Client(clientID, clientSecret string) Option
- func WithOAuth2RedirectURL(redirectURL string) Option
- func WithOAuth2Scopes(scopes ...string) Option
- func WithOAuth2URLs(authURL, tokenURL string) Option
- func WithOIDCIssuer(issuerURL string) Option
- func WithRefreshTokenExpiry(expiry time.Duration) Option
- func WithSessionManagement(enabled bool) Option
- func WithSkipPaths(paths ...string) Option
- func WithStorageConfig(config map[string]interface{}) Option
- func WithStorageType(storageType string) Option
- func WithTokenExpiry(expiry time.Duration) Option
- func WithTokenHeader(header string) Option
- func WithTokenRevocation(enabled bool) Option
- func WithTokenSources(sources ...string) Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrInvalidConfigWithDetails ¶
ErrInvalidConfigWithDetails cria um erro de configuração com detalhes específicos.
func ExtractTokenFromRequest ¶
func ExtractTokenFromRequest(req interface{}) string
ExtractTokenFromRequest é uma função helper para extrair tokens de requisições HTTP. Esta função será implementada no pacote middleware.
Types ¶
type AuthKit ¶
type AuthKit struct {
// contains filtered or unexported fields
}
AuthKit é a estrutura principal que gerencia autenticação e autorização.
func (*AuthKit) CreateUser ¶
CreateUser cria um novo usuário.
func (*AuthKit) GenerateToken ¶
GenerateToken gera um novo token com as claims fornecidas.
func (*AuthKit) GenerateTokenForUser ¶
GenerateTokenForUser gera um token para um usuário específico.
func (*AuthKit) GetUserByEmail ¶
GetUserByEmail busca um usuário por email.
func (*AuthKit) GetUserByUsername ¶
GetUserByUsername busca um usuário por username.
func (*AuthKit) HasPermission ¶
HasPermission verifica se um usuário tem uma permissão específica.
func (*AuthKit) IsInitialized ¶
IsInitialized verifica se o AuthKit foi inicializado corretamente.
func (*AuthKit) RefreshToken ¶
RefreshToken renova um token usando um refresh token.
func (*AuthKit) RevokeToken ¶
RevokeToken revoga um token.
func (*AuthKit) TokenGenerator ¶
func (a *AuthKit) TokenGenerator() contracts.TokenGenerator
TokenGenerator retorna o gerador de tokens.
func (*AuthKit) TokenValidator ¶
func (a *AuthKit) TokenValidator() contracts.TokenValidator
TokenValidator retorna o validador de tokens.
func (*AuthKit) UseJWTProvider ¶
func (a *AuthKit) UseJWTProvider(provider contracts.JWTProvider)
UseJWTProvider define um provedor JWT personalizado.
func (*AuthKit) UseOAuth2Provider ¶
func (a *AuthKit) UseOAuth2Provider(provider contracts.OAuth2Provider)
UseOAuth2Provider define um provedor OAuth2 personalizado.
func (*AuthKit) UsePermissionProvider ¶
func (a *AuthKit) UsePermissionProvider(provider contracts.PermissionProvider)
UsePermissionProvider define um provedor de permissões personalizado.
func (*AuthKit) UseStorageProvider ¶
func (a *AuthKit) UseStorageProvider(provider contracts.StorageProvider)
UseStorageProvider define um provedor de armazenamento personalizado.
func (*AuthKit) UseTokenManager ¶
func (a *AuthKit) UseTokenManager(manager contracts.TokenManager)
UseTokenManager define um gerenciador de tokens personalizado.
func (*AuthKit) UseUserProvider ¶
func (a *AuthKit) UseUserProvider(provider contracts.UserProvider)
UseUserProvider define um provedor de usuários personalizado.
type Config ¶
type Config struct {
// JWT Configuration
Issuer string `json:"issuer"`
Audience []string `json:"audience,omitempty"`
TokenExpiry time.Duration `json:"token_expiry"`
RefreshTokenExpiry time.Duration `json:"refresh_token_expiry"`
JWTSigningMethod string `json:"jwt_signing_method"`
JWTSecret []byte `json:"-"` // Para métodos HMAC
JWTPrivateKey *rsa.PrivateKey `json:"-"` // Para métodos RSA/ECDSA
JWTPublicKey *rsa.PublicKey `json:"-"` // Para validação RSA/ECDSA
// API Key Configuration
APIKeyPrefix string `json:"api_key_prefix,omitempty"`
APIKeyLength int `json:"api_key_length"`
APIKeyExpiry time.Duration `json:"api_key_expiry,omitempty"`
APIKeyLocation string `json:"api_key_location"` // header, query, body
APIKeyHeaderName string `json:"api_key_header_name"`
APIKeyQueryParam string `json:"api_key_query_param"`
// OAuth2/OIDC Configuration
OAuth2ClientID string `json:"oauth2_client_id,omitempty"`
OAuth2ClientSecret string `json:"oauth2_client_secret,omitempty"`
OAuth2RedirectURL string `json:"oauth2_redirect_url,omitempty"`
OAuth2Scopes []string `json:"oauth2_scopes,omitempty"`
OAuth2AuthURL string `json:"oauth2_auth_url,omitempty"`
OAuth2TokenURL string `json:"oauth2_token_url,omitempty"`
OIDCIssuerURL string `json:"oidc_issuer_url,omitempty"`
OIDCUserInfoURL string `json:"oidc_userinfo_url,omitempty"`
// Middleware Configuration
TokenSources []string `json:"token_sources"` // bearer, header, query, cookie
BearerTokenPrefix string `json:"bearer_token_prefix"`
TokenHeaderName string `json:"token_header_name"`
TokenQueryParam string `json:"token_query_param"`
TokenCookieName string `json:"token_cookie_name"`
SkipPaths []string `json:"skip_paths,omitempty"`
// Security Configuration
EnableTokenRevocation bool `json:"enable_token_revocation"`
EnableSessionManagement bool `json:"enable_session_management"`
MaxSessionsPerUser int `json:"max_sessions_per_user"`
SessionExpiry time.Duration `json:"session_expiry"`
// Storage Configuration
StorageType string `json:"storage_type"` // memory, redis, database
StorageConfig map[string]interface{} `json:"storage_config,omitempty"`
// Validation Configuration
RequireHTTPS bool `json:"require_https"`
AllowedOrigins []string `json:"allowed_origins,omitempty"`
ClockSkew time.Duration `json:"clock_skew"`
// Performance Configuration
CacheEnabled bool `json:"cache_enabled"`
CacheTTL time.Duration `json:"cache_ttl"`
MaxCacheSize int `json:"max_cache_size"`
// Debug Configuration
Debug bool `json:"debug"`
LogLevel string `json:"log_level"`
}
Config contém todas as configurações do AuthKit.
type Option ¶
type Option func(*Config)
Option define uma função de configuração.
func WithAPIKeyExpiry ¶
WithAPIKeyExpiry define o tempo de expiração das API keys.
func WithAPIKeyHeader ¶
WithAPIKeyHeader define o nome do header para API keys.
func WithAPIKeyLength ¶
WithAPIKeyLength define o comprimento das API keys.
func WithAPIKeyLocation ¶
WithAPIKeyLocation define onde procurar API keys (header, query, body).
func WithAPIKeyPrefix ¶
WithAPIKeyPrefix define o prefixo das API keys.
func WithAudience ¶
WithAudience define a audiência dos tokens.
func WithBearerPrefix ¶
WithBearerPrefix define o prefixo do token Bearer.
func WithClockSkew ¶
WithClockSkew define a tolerância para diferença de relógio.
func WithJWTKeys ¶
func WithJWTKeys(privateKey *rsa.PrivateKey, publicKey *rsa.PublicKey) Option
WithJWTKeys define as chaves RSA para assinatura.
func WithJWTSecret ¶
WithJWTSecret define o segredo para assinatura HMAC.
func WithJWTSigningMethod ¶
WithJWTSigningMethod define o método de assinatura JWT.
func WithMaxSessions ¶
WithMaxSessions define o número máximo de sessões por usuário.
func WithOAuth2Client ¶
WithOAuth2Client define as credenciais do cliente OAuth2.
func WithOAuth2RedirectURL ¶
WithOAuth2RedirectURL define a URL de redirecionamento OAuth2.
func WithOAuth2Scopes ¶
WithOAuth2Scopes define os escopos OAuth2.
func WithOAuth2URLs ¶
WithOAuth2URLs define as URLs OAuth2.
func WithOIDCIssuer ¶
WithOIDCIssuer define o emissor OIDC.
func WithRefreshTokenExpiry ¶
WithRefreshTokenExpiry define o tempo de expiração dos refresh tokens.
func WithSessionManagement ¶
WithSessionManagement habilita/desabilita gerenciamento de sessões.
func WithSkipPaths ¶
WithSkipPaths define caminhos que não requerem autenticação.
func WithStorageConfig ¶
WithStorageConfig define configurações específicas do storage.
func WithStorageType ¶
WithStorageType define o tipo de armazenamento.
func WithTokenExpiry ¶
WithTokenExpiry define o tempo de expiração dos tokens.
func WithTokenHeader ¶
WithTokenHeader define o nome do header para tokens.
func WithTokenRevocation ¶
WithTokenRevocation habilita/desabilita revogação de tokens.
func WithTokenSources ¶
WithTokenSources define onde procurar tokens.
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
basic
command
|
|
|
storage
command
|
|
|
storage-integration
command
|
|
|
token-management
command
|
|
|
tests
|
|