Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthMiddleware ¶
type AuthMiddleware interface {
MiddlewareFunc() gin.HandlerFunc
LoginHandler() gin.HandlerFunc
LogoutHandler() gin.HandlerFunc
RefreshHandler() gin.HandlerFunc
}
AuthMiddleware defines the interface that all auth middleware must implement This allows for different auth strategies (JWT, session, etc.)
type AuthOptions ¶
type AuthOptions struct {
// JWT Configuration
JWTSecret string
JWTRealm string
TokenExpireTime time.Duration
RefreshExpireTime time.Duration
IdentityKey string
// Session Configuration
SessionSecret string
SessionMaxAge int
SessionDomain string
SessionSecure bool
SessionSameSite string
// OAuth Configuration
OAuth *OAuthConfig
// Callback Functions
FindUserByEmail FindUserByEmailFunc
FindUserByID FindUserByIDFunc
}
AuthOptions represents configuration for traditional authentication
func (*AuthOptions) ValidateAuthOptions ¶
func (opts *AuthOptions) ValidateAuthOptions() error
ValidateAuthOptions validates traditional authentication configuration
type BFFAuthOptions ¶
type BFFAuthOptions struct {
// Session configuration
SessionSecret string
SessionMaxAge int
SessionDomain string
SessionSecure bool
// JWT configuration
JWTSecret string
JWTExpiry time.Duration
// Cookie configuration
SIDCookieName string
SIDCookiePath string
// Session service (provided by implementing project)
SessionService SessionService
// User callbacks
FindUserByEmail FindUserByEmailFunc
FindUserByID FindUserByIDFunc
// OAuth configuration (optional)
OAuth *OAuthConfig
}
BFFAuthOptions represents configuration for BFF authentication
func (*BFFAuthOptions) ValidateBFFAuthOptions ¶
func (opts *BFFAuthOptions) ValidateBFFAuthOptions() error
ValidateBFFAuthOptions validates BFF authentication configuration
type FindUserByEmailFunc ¶
UserFinder callback function types
type FindUserByIDFunc ¶
type OAuthConfig ¶
type OAuthConfig struct {
Providers map[string]OAuthProvider `json:"providers"`
BaseURL string `json:"base_url"`
SuccessURL string `json:"success_url"`
FailureURL string `json:"failure_url"`
// User management callbacks
FindUserByEmail FindUserByEmailFunc `json:"-"`
FindUserByID FindUserByIDFunc `json:"-"`
// Error handling configuration
FailOnProviderError bool `json:"fail_on_provider_error"` // If true, service fails fast when providers fail to initialize
// User configuration
DefaultRole string `json:"default_role"`
}
OAuthConfig represents the overall OAuth configuration
func (*OAuthConfig) ValidateOAuthConfig ¶
func (config *OAuthConfig) ValidateOAuthConfig() error
ValidateOAuthConfig validates OAuth configuration
type OAuthProvider ¶
type OAuthProvider struct {
ClientID string `json:"client_id"`
ClientSecret string `json:"client_secret"`
RedirectURL string `json:"redirect_url"`
Scopes []string `json:"scopes"`
}
OAuthProvider represents configuration for an OAuth provider
func (*OAuthProvider) ValidateOAuthProvider ¶
func (provider *OAuthProvider) ValidateOAuthProvider() error
ValidateOAuthProvider validates individual OAuth provider configuration
type SessionService ¶
type SessionService interface {
CreateSession(user UserInfo, expiry time.Duration) (string, error)
GetSession(sid string) (UserInfo, error)
DeleteSession(sid string) error
ValidateSession(sid string) (UserInfo, error)
}
SessionService defines the interface for session management
type UserInfo ¶
type UserInfo struct {
ID uint `json:"id"`
Email string `json:"email"`
Role string `json:"role"`
FirstName string `json:"first_name,omitempty"`
LastName string `json:"last_name,omitempty"`
PasswordHash string `json:"-"` // Never expose password hash in JSON
CustomFields map[string]any `json:"custom_fields,omitempty"` // Extensible fields for implementers
}
UserInfo represents user data returned by callback functions This struct is extensible - It can be embedded in other structs or use the CustomFields map for additional data
func (*UserInfo) GetCustomField ¶
GetCustomField retrieves a custom field value
func (*UserInfo) GetFullName ¶
GetFullName returns the user's full name
func (*UserInfo) SetCustomField ¶
SetCustomField sets a custom field value