Expand description
Auth Framework Prelude
This module provides a convenient way to import the most commonly used types and traits from the auth framework. Instead of importing individual types, you can simply use:
use auth_framework::prelude::*;This imports all the essential types you need to get started with authentication and authorization in your application.
§What’s Included
§Core Framework Types
AuthFramework- Main authentication frameworkAuthConfig- Configuration builderAuthError- Error type with detailed error variantsAuthFrameworkResult- Convenient Result type alias
§Authentication Methods
JwtMethod- JWT authenticationOAuth2Method- OAuth 2.0 authenticationApiKeyMethod- API key authenticationPasswordMethod- Password-based authentication
§Tokens and Sessions
AuthToken- Authentication token representationSessionData- Session data structureUserProfile- User profile information
§Permissions and Authorization
Permission- Permission representationRole- Role representationPermissionChecker- Permission validation trait
§Storage Abstractions
AuthStorage- Storage trait for persistenceMemoryStorage- In-memory storage implementation
§Web Framework Integration
- [
RequireAuth] - Middleware for requiring authentication - [
AuthenticatedUser] - Extractor for authenticated users - [
RequirePermission] - Middleware for permission checking
§Builder Patterns and Helpers
AuthBuilder- Fluent builder for framework setupSecurityPreset- Pre-configured security levelsConfigBuilder- Configuration builder
§Time and Rate Limiting Helpers
- Time duration helpers:
hours,minutes,days,weeks - Rate limiting helpers:
requests, [per_second], [per_minute], [per_hour]
§Quick Start Example
use auth_framework::prelude::*;
#[tokio::main]
async fn main() -> AuthFrameworkResult<()> {
// Create auth framework with sensible defaults
let auth = AuthFramework::quick_start()
.jwt_auth_from_env()
.with_postgres_from_env()
.build().await?;
// Create a token
let token = auth.create_auth_token(
"user123",
vec!["read".to_string()],
"jwt",
None
).await?;
// Validate token
if auth.validate_token(&token).await? {
println!("Token is valid!");
}
Ok(())
}Re-exports§
pub use crate::AuthFramework;pub use crate::auth::AuthStats;pub use crate::auth::UserInfo;pub use crate::config::app_config::AppConfig;pub use crate::config::app_config::ConfigBuilder;pub use crate::config::AuditConfig;pub use crate::config::AuthConfig;pub use crate::config::CookieSameSite;pub use crate::config::JwtAlgorithm;pub use crate::config::PasswordHashAlgorithm;pub use crate::config::RateLimitConfig;pub use crate::config::SecurityConfig;pub use crate::config::StorageConfig;pub use crate::errors::AuthError;pub use crate::errors::DeviceFlowError;pub use crate::errors::MfaError;pub use crate::errors::OAuthProviderError;pub use crate::errors::PermissionError;pub use crate::errors::Result;pub use crate::errors::StorageError;pub use crate::errors::TokenError;pub use crate::methods::ApiKeyMethod;pub use crate::methods::AuthMethod;pub use crate::methods::AuthMethodEnum;pub use crate::methods::JwtMethod;pub use crate::methods::MethodResult;pub use crate::methods::OAuth2Method;pub use crate::methods::PasswordMethod;pub use crate::authentication::credentials::Credential;pub use crate::providers::OAuthProvider;pub use crate::providers::OAuthProviderConfig;pub use crate::providers::UserProfile;pub use crate::tokens::AuthToken;pub use crate::tokens::TokenMetadata;pub use crate::permissions::Permission;pub use crate::permissions::PermissionChecker;pub use crate::permissions::Role;pub use crate::authorization::AccessCondition;pub use crate::authorization::AuthorizationEngine;pub use crate::authorization::Permission as AuthzPermission;pub use crate::authorization::Role as AuthzRole;pub use crate::storage::AuthStorage;pub use crate::storage::MemoryStorage;pub use crate::storage::SessionData;pub use crate::security::secure_session::DeviceFingerprint;pub use crate::security::secure_session::SecureSession;pub use crate::security::secure_session::SecureSessionConfig;pub use crate::security::secure_session::SecureSessionManager;pub use crate::security::secure_session::SecurityFlags;pub use crate::security::secure_session::SessionState as SecureSessionState;pub use crate::session::manager::DeviceInfo;pub use crate::session::manager::Session;pub use crate::session::manager::SessionConfig;pub use crate::session::manager::SessionManager as LegacySessionManager;pub use crate::session::manager::SessionState;pub use crate::monitoring::HealthCheckResult;pub use crate::monitoring::HealthStatus;pub use crate::monitoring::MonitoringManager;pub use crate::monitoring::PerformanceMetrics;pub use crate::monitoring::SecurityEvent;pub use crate::monitoring::SecurityEventSeverity;pub use crate::monitoring::SecurityEventType;pub use crate::audit::AuditEvent;pub use crate::audit::AuditEventType;pub use crate::audit::AuditLogger;pub use crate::audit::EventOutcome;pub use crate::audit::RiskLevel;pub use crate::security::secure_jwt::SecureJwtClaims;pub use crate::security::secure_jwt::SecureJwtConfig;pub use crate::security::secure_jwt::SecureJwtValidator;pub use crate::security::secure_utils::SecureComparison;pub use crate::security::secure_utils::SecureRandomGen;pub use crate::security::SecurityAuditReport;pub use crate::security::SecurityAuditStatus;pub use crate::security::SecurityIssue;pub use crate::security::SecuritySeverity;pub use crate::utils::rate_limit::RateLimiter;pub use crate::api::ApiError;pub use crate::api::ApiResponse;pub use crate::api::ApiServer;pub use crate::api::ApiState;pub use crate::server::oidc::IdTokenClaims;pub use crate::server::oidc::Jwk;pub use crate::server::oidc::JwkSet;pub use crate::server::oidc::OidcConfig;pub use crate::server::oidc::OidcDiscoveryDocument;pub use crate::server::oidc::OidcProvider;pub use crate::server::oidc::UserInfo as OidcUserInfo;pub use crate::oauth2_server::AuthorizationRequest;pub use crate::oauth2_server::GrantType;pub use crate::oauth2_server::OAuth2Config;pub use crate::oauth2_server::OAuth2Server;pub use crate::oauth2_server::ResponseType;pub use crate::oauth2_server::TokenRequest;pub use crate::oauth2_server::TokenResponse;pub use rate::RequestCount;pub use rate::requests;pub use time::days;pub use time::hours;pub use time::minutes;pub use time::seconds;pub use time::weeks;pub use crate::security::SecurityPreset;pub use crate::builders::*;
Modules§
Enums§
Type Aliases§
- Async
Auth Handler - Auth
Framework Result - Common type alias for Results with AuthError