Documentation
¶
Index ¶
- type AuthMiddleware
- func (m *AuthMiddleware) Authenticate(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAPIKey(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAdmin(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAllPermissions(permissions ...string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAllScopes(scopes ...string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAnyPermission(permissions ...string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAnyScope(scopes ...string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireAuth(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireCanAccess(action, resource string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequirePublishableKey(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireRBACPermission(action, resource string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireScope(scope string) func(func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireSecretKey(next func(forge.Context) error) func(forge.Context) error
- func (m *AuthMiddleware) RequireUser(next func(forge.Context) error) func(forge.Context) error
- type AuthMiddlewareConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthMiddleware ¶
type AuthMiddleware struct {
// contains filtered or unexported fields
}
AuthMiddleware handles authentication via API keys and sessions Following production patterns like Clerk, this middleware supports: - API key authentication (pk/sk/rk keys) - Session-based authentication (cookies + bearer tokens) - Dual authentication (both API key and user session)
func NewAuthMiddleware ¶
func NewAuthMiddleware( apiKeySvc *apikey.Service, sessionSvc session.ServiceInterface, userSvc user.ServiceInterface, config AuthMiddlewareConfig, ) *AuthMiddleware
NewAuthMiddleware creates a new authentication middleware
func (*AuthMiddleware) Authenticate ¶
Authenticate is the main middleware function that populates auth context This middleware is optional by default - it populates context but doesn't block
func (*AuthMiddleware) RequireAPIKey ¶
RequireAPIKey middleware that requires an API key
func (*AuthMiddleware) RequireAdmin ¶
RequireAdmin middleware that requires admin privileges
func (*AuthMiddleware) RequireAllPermissions ¶
func (m *AuthMiddleware) RequireAllPermissions(permissions ...string) func(func(forge.Context) error) func(forge.Context) error
RequireAllPermissions middleware that requires all of the specified permissions
func (*AuthMiddleware) RequireAllScopes ¶
func (m *AuthMiddleware) RequireAllScopes(scopes ...string) func(func(forge.Context) error) func(forge.Context) error
RequireAllScopes middleware that requires all of the specified scopes
func (*AuthMiddleware) RequireAnyPermission ¶
func (m *AuthMiddleware) RequireAnyPermission(permissions ...string) func(func(forge.Context) error) func(forge.Context) error
RequireAnyPermission middleware that requires any of the specified permissions
func (*AuthMiddleware) RequireAnyScope ¶
func (m *AuthMiddleware) RequireAnyScope(scopes ...string) func(func(forge.Context) error) func(forge.Context) error
RequireAnyScope middleware that requires any of the specified scopes
func (*AuthMiddleware) RequireAuth ¶
RequireAuth middleware that rejects unauthenticated requests
func (*AuthMiddleware) RequireCanAccess ¶
func (m *AuthMiddleware) RequireCanAccess(action, resource string) func(func(forge.Context) error) func(forge.Context) error
RequireCanAccess middleware that checks if auth context can access a resource This is flexible - accepts EITHER legacy scopes OR RBAC permissions Recommended for backward compatibility
func (*AuthMiddleware) RequirePublishableKey ¶
func (m *AuthMiddleware) RequirePublishableKey(next func(forge.Context) error) func(forge.Context) error
RequirePublishableKey middleware that requires a publishable (pk_) API key
func (*AuthMiddleware) RequireRBACPermission ¶
func (m *AuthMiddleware) RequireRBACPermission(action, resource string) func(func(forge.Context) error) func(forge.Context) error
RequireRBACPermission middleware that requires a specific RBAC permission Checks only RBAC permissions (not legacy scopes)
func (*AuthMiddleware) RequireScope ¶
func (m *AuthMiddleware) RequireScope(scope string) func(func(forge.Context) error) func(forge.Context) error
RequireScope middleware that requires a specific API key scope
func (*AuthMiddleware) RequireSecretKey ¶
RequireSecretKey middleware that requires a secret (sk_) API key
func (*AuthMiddleware) RequireUser ¶
RequireUser middleware that requires a logged-in user (session)
type AuthMiddlewareConfig ¶
type AuthMiddlewareConfig struct {
// Cookie name for session token
SessionCookieName string
// Allow unauthenticated requests to pass through
// If false, middleware will return 401 for unauthenticated requests
Optional bool
// Header names to check for API keys
APIKeyHeaders []string
// Allow API key in query params (NOT recommended for production)
AllowAPIKeyInQuery bool
// Allow query param session tokens (NOT recommended for production)
AllowSessionInQuery bool
}
AuthMiddlewareConfig configures the authentication middleware behavior