Documentation
¶
Index ¶
Constants ¶
View Source
const CookieName = "authtoken"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthPasswordInterface ¶ added in v0.30.0
type AuthPasswordInterface interface {
AuthSharedInterface
// Password reset URLs (web and API).
LinkPasswordRestore() string
LinkPasswordReset(token string) string
LinkApiPasswordRestore() string
LinkApiPasswordReset() string
}
AuthPasswordInterface represents username/password based authentication. It extends the shared interface with password-reset specific helpers.
type AuthPasswordlessInterface ¶ added in v0.30.0
type AuthPasswordlessInterface interface {
AuthSharedInterface
// Passwordless-only URL helpers.
LinkLoginCodeVerify() string
LinkApiLoginCodeVerify() string
}
AuthPasswordlessInterface represents passwordless authentication flows. It extends the shared interface with login/verification code helpers.
type AuthSharedInterface ¶ added in v0.30.0
type AuthSharedInterface interface {
Router() *http.ServeMux
WebAuthOrRedirectMiddleware(next http.Handler) http.Handler
WebAppendUserIdIfExistsMiddleware(next http.Handler) http.Handler
GetCurrentUserID(r *http.Request) string
// Web URL helpers
// API URL helpers
// Additional accessors used by internal API flows.
AuthenticateViaUsername(w http.ResponseWriter, r *http.Request, email, firstName, lastName string)
}
AuthSharedInterface defines the common behavior shared by all auth modes. It includes routing helpers, middleware, current user access, and the primary login/register URL helpers.
type AuthenticatedUserID ¶ added in v0.30.0
type AuthenticatedUserID struct{}
type ConfigPasswordless ¶ added in v0.30.0
type ConfigPasswordless struct {
// ===== START: shared by all implementations
EnableRegistration bool
Endpoint string
FuncLayout func(content string) string
FuncTemporaryKeyGet func(key string) (value string, err error)
FuncTemporaryKeySet func(key string, value string, expiresSeconds int) (err error)
FuncUserFindByAuthToken func(ctx context.Context, sessionID string, options UserAuthOptions) (userID string, err error)
FuncUserLogout func(ctx context.Context, userID string, options UserAuthOptions) (err error)
FuncUserStoreAuthToken func(ctx context.Context, sessionID string, userID string, options UserAuthOptions) error
UrlRedirectOnSuccess string
UseCookies bool
UseLocalStorage bool
CookieConfig *CookieConfig
// Rate limiting options
DisableRateLimit bool // Set to true to disable rate limiting (not recommended for production)
FuncCheckRateLimit func(ip string, endpoint string) (allowed bool, retryAfter time.Duration, err error) // Optional: override default rate limiter
MaxLoginAttempts int // Maximum attempts before lockout (default: 5)
LockoutDuration time.Duration // Duration to lock after max attempts (default: 15 minutes)
// CSRF Protection
EnableCSRFProtection bool
CSRFSecret string
Logger *slog.Logger
// ===== START: passwordless options
FuncUserFindByEmail func(ctx context.Context, email string, options UserAuthOptions) (userID string, err error)
FuncEmailTemplateLoginCode func(ctx context.Context, email string, logingLink string, options UserAuthOptions) string // optional
FuncEmailTemplateRegisterCode func(ctx context.Context, email string, registerLink string, options UserAuthOptions) string // optional
FuncEmailSend func(ctx context.Context, email string, emailSubject string, emailBody string) (err error)
FuncUserRegister func(ctx context.Context, email string, firstName string, lastName string, options UserAuthOptions) (err error)
}
type ConfigUsernameAndPassword ¶ added in v0.30.0
type ConfigUsernameAndPassword struct {
// ===== START: shared by all implementations
EnableRegistration bool
Endpoint string
FuncLayout func(content string) string
FuncTemporaryKeyGet func(key string) (value string, err error)
FuncTemporaryKeySet func(key string, value string, expiresSeconds int) (err error)
FuncUserStoreAuthToken func(ctx context.Context, sessionID string, userID string, options UserAuthOptions) error
FuncUserFindByAuthToken func(ctx context.Context, sessionID string, options UserAuthOptions) (userID string, err error)
UrlRedirectOnSuccess string
UseCookies bool
UseLocalStorage bool
CookieConfig *CookieConfig
// Rate limiting options
DisableRateLimit bool // Set to true to disable rate limiting (not recommended for production)
FuncCheckRateLimit func(ip string, endpoint string) (allowed bool, retryAfter time.Duration, err error) // Optional: override default rate limiter
MaxLoginAttempts int // Maximum attempts before lockout (default: 5)
LockoutDuration time.Duration // Duration to lock after max attempts (default: 15 minutes)
// CSRF Protection
EnableCSRFProtection bool
CSRFSecret string
Logger *slog.Logger
// ===== START: username(email) and password options
EnableVerification bool
FuncEmailTemplatePasswordRestore func(ctx context.Context, userID string, passwordRestoreLink string, options UserAuthOptions) string // optional
FuncEmailTemplateRegisterCode func(ctx context.Context, userID string, passwordRestoreLink string, options UserAuthOptions) string // optional
FuncEmailSend func(ctx context.Context, userID string, emailSubject string, emailBody string) (err error)
FuncUserFindByUsername func(ctx context.Context, username string, firstName string, lastName string, options UserAuthOptions) (userID string, err error)
FuncUserLogin func(ctx context.Context, username string, password string, options UserAuthOptions) (userID string, err error)
FuncUserLogout func(ctx context.Context, userID string, options UserAuthOptions) (err error)
FuncUserPasswordChange func(ctx context.Context, username string, newPassword string, options UserAuthOptions) (err error)
FuncUserRegister func(ctx context.Context, username string, password string, first_name string, last_name string, options UserAuthOptions) (err error)
PasswordStrength *PasswordStrengthConfig
LabelUsername string
}
Config defines the available configuration options for authentication
type CookieConfig ¶ added in v0.30.0
type PasswordStrengthConfig ¶
type PasswordStrengthConfig struct {
MinLength int
RequireUppercase bool
RequireLowercase bool
RequireDigit bool
RequireSpecial bool
ForbidCommonWords bool
}
PasswordStrengthConfig defines configurable rules for password strength.
type UserAuthOptions ¶ added in v0.30.0
Click to show internal directories.
Click to hide internal directories.