auth

package
v0.0.1-alpha4 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const UserContextKey contextKey = "user"

Variables

This section is empty.

Functions

func APIKeyMiddleware

func APIKeyMiddleware(userRepo *database.UserRepository) fiber.Handler

APIKeyMiddleware provides API key authentication middleware for This middleware checks for API key in query params or headers

func AuthMiddleware

func AuthMiddleware(tokenService *token.Service, userRepo *database.UserRepository, skipPaths []string) fiber.Handler

AuthMiddleware is a flexible auth middleware that can skip certain paths

func CombinedAuthMiddleware

func CombinedAuthMiddleware(tokenService *token.Service, userRepo *database.UserRepository, requireAuth bool) fiber.Handler

CombinedAuthMiddleware combines JWT and API key authentication Tries JWT first, then falls back to API key

func CreateClaimsFromUser

func CreateClaimsFromUser(user *database.User) token.Claims

CreateClaimsFromUser creates JWT claims from a database user

func GetUserFromContext

func GetUserFromContext(c *fiber.Ctx) *database.User

GetUserFromContext extracts user from context

func JWTMiddleware

func JWTMiddleware(tokenService *token.Service, userRepo *database.UserRepository) fiber.Handler

JWTMiddleware provides JWT authentication middleware for (soft auth - optional) This middleware adds user to context if valid token exists, but doesn't require it

func OptionalAPIKeyMiddleware

func OptionalAPIKeyMiddleware(userRepo *database.UserRepository) fiber.Handler

OptionalAPIKeyMiddleware provides optional API key authentication This middleware adds user to context if valid API key exists, but doesn't require it

func RequireAdmin

func RequireAdmin(tokenService *token.Service, userRepo *database.UserRepository) fiber.Handler

RequireAdmin middleware requires admin privileges for protected routes

func RequireAuth

func RequireAuth(tokenService *token.Service, userRepo *database.UserRepository) fiber.Handler

RequireAuth middleware requires authentication for protected routes (hard auth - required)

func RequireAuthWithSkip

func RequireAuthWithSkip(tokenService *token.Service, userRepo *database.UserRepository, skipPaths []string) fiber.Handler

RequireAuthWithSkip requires auth but skips certain paths

Types

type Config

type Config struct {
	// JWT configuration
	JWTSecret      string        // JWT signing secret
	TokenDuration  time.Duration // JWT token duration
	CookieDomain   string        // Cookie domain
	CookieSecure   bool          // Secure cookie flag
	CookieSameSite http.SameSite // SameSite cookie attribute

	// Direct authentication
	DirectAuthEnabled bool   // Enable direct username/password authentication
	DirectAuthSalt    string // Salt for direct authentication

	// Application settings
	Issuer   string // JWT issuer
	Audience string // JWT audience
}

Config represents authentication service configuration

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns default authentication configuration

func LoadConfigFromEnv

func LoadConfigFromEnv() *Config

LoadConfigFromEnv loads configuration from environment variables

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service handles authentication operations using go-pkgz/auth

func NewService

func NewService(config *Config, userRepo *database.UserRepository) (*Service, error)

NewService creates a new authentication service

func (*Service) AuthService

func (s *Service) AuthService() *auth.Service

AuthService returns the underlying auth service

func (*Service) AuthenticateUser

func (s *Service) AuthenticateUser(username, password string) (*database.User, error)

AuthenticateUser verifies username/password and returns user

func (*Service) CreateOrUpdateUser

func (s *Service) CreateOrUpdateUser(claims token.Claims) (*database.User, error)

CreateOrUpdateUser creates or updates a user based on token claims

func (*Service) GetUserFromToken

func (s *Service) GetUserFromToken(tokenStr string) (*database.User, error)

GetUserFromToken extracts user information from JWT token

func (*Service) HashPassword

func (s *Service) HashPassword(password string) (string, error)

HashPassword hashes a password using bcrypt

func (*Service) IsUserAdmin

func (s *Service) IsUserAdmin(userID string) (bool, error)

IsUserAdmin checks if a user has admin privileges

func (*Service) RegisterUser

func (s *Service) RegisterUser(username, email, password string) (*database.User, error)

RegisterUser creates a new user with username and password

func (*Service) SetupProviders

func (s *Service) SetupProviders(config *Config) error

SetupProviders configures authentication providers

func (*Service) TokenService

func (s *Service) TokenService() *token.Service

TokenService returns the token service for JWT operations

Jump to

Keyboard shortcuts

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