Expand description
Convenience re-exports for common types — use auth_framework::prelude::*.
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.
§Recommended Entry Points
- Use
AuthFrameworkfor the normal library entry point. - Use
ModularAuthFrameworkonly when you need direct access to the component managers fromauth_modular. - Use
AuthFramework::users,AuthFramework::sessions,AuthFramework::tokens, andAuthFramework::authorizationwhen you want grouped operations instead of the full façade. - Use
AppConfigBuilderfor simple app-defined configuration. - Use
LayeredConfigBuilderandConfigManagerfor layered config sourced from files and environment variables. - Use
SessionManagerfor the standard session engine andSecureSessionManagerwhen you need the hardened secure-session layer.
§What’s Included
§Core Framework Types
AuthFramework- Main authentication frameworkAuthConfig- Configuration builderAuthError- Error type with detailed error variants- [
AuthFrameworkResult] - 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 representation- [
SessionData] - Session data structure ProviderProfile- Provider-backed user profile information
§Permissions and Authorization
Permission- Permission representationRole- Role representation with builder methods- [
AbacPolicy] - Attribute-based access control policy with builder methods - [
Delegation] - Permission delegation with builder methods PermissionChecker- Permission validation trait
§Storage Abstractions
- [
AuthStorage] - Storage trait for persistence - [
MemoryStorage] - In-memory storage implementation
§Web Framework Integration
RequireAuth- Middleware for requiring authenticationAuthenticatedUser- Extractor for authenticated usersRequirePermission- Middleware for permission checking
§Builder Patterns and Helpers
- [
AuthBuilder] - Fluent builder for framework setup AuthConfigBuilder- Organized builder for AuthConfig with grouped settings- [
SecurityPreset] - Pre-configured security levels AppConfigBuilder- Simple application configuration builderLayeredConfigBuilder- Layered configuration builder- [
AdvancedPermissionCheck] - Builder for multi-source permission checks - [
ExecutionMode] -DryRunvsExecutefor maintenance operations - [
UserStatus] -ActivevsInactivefor user account state - [
SessionFilter] -ActiveOnlyvsIncludeInactivefor session listing
§Time and Rate Limiting Helpers
- Time duration helpers: [
hours], [minutes], [days], [weeks] - Rate limiting helpers: [
requests], [RequestCount::per_second], [RequestCount::per_minute], [RequestCount::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::ModularAuthFramework;pub use crate::auth::AdminOperations;pub use crate::auth::AuditOperations;pub use crate::auth::AuthStats;pub use crate::auth::AuthorizationOperations;pub use crate::auth::MfaOperations;pub use crate::auth::MonitoringOperations;pub use crate::auth::SessionOperations;pub use crate::auth::TokenOperations;pub use crate::auth::UserInfo;pub use crate::auth::UserOperations;pub use crate::auth_operations::AuditLogQuery;pub use crate::auth_operations::DelegationRequest;pub use crate::auth_operations::ExecutionMode;pub use crate::auth_operations::PermissionContext;pub use crate::auth_operations::SessionCreateRequest;pub use crate::auth_operations::SessionFilter;pub use crate::auth_operations::TokenCreateRequest;pub use crate::auth_operations::UserListQuery;pub use crate::auth_operations::UserStatus;pub use crate::config::app_config::AppConfig;pub use crate::config::app_config::ConfigBuilder as AppConfigBuilder;pub use crate::config::config_manager::AuthFrameworkSettings;pub use crate::config::config_manager::ConfigBuilder as LayeredConfigBuilder;pub use crate::config::config_manager::ConfigManager;pub use crate::config::AuditConfig;pub use crate::config::AuthConfig;pub use crate::config::AuthConfigBuilder;pub use crate::config::CookieSameSite;pub use crate::config::CorsConfig;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::types::AdditionalParams;pub use crate::types::GrantTypes;pub use crate::types::IpList;pub use crate::types::Permissions;pub use crate::types::RedirectUris;pub use crate::types::ResponseTypes;pub use crate::types::Roles;pub use crate::types::Scopes;pub use crate::types::UserAttributes;pub use crate::types::UserAttributesString;pub use crate::authentication::credentials::Credential;pub use crate::providers::OAuthProvider;pub use crate::providers::OAuthProviderConfig;pub use crate::providers::OAuthProviderConfigBuilder;pub use crate::providers::ProviderProfile;pub use crate::tokens::AuthToken;pub use crate::tokens::AuthTokenBuilder;pub use crate::tokens::TokenMetadata;pub use crate::tokens::TokenMetadataBuilder;pub use crate::permissions::AbacPolicy;pub use crate::permissions::AdvancedPermissionCheck;pub use crate::permissions::Delegation;pub use crate::permissions::Permission;pub use crate::permissions::PermissionChecker;pub use crate::permissions::Role;pub use crate::authorization::AbacPermission as AuthzPermission;pub use crate::authorization::AbacRole as AuthzRole;pub use crate::authorization::AccessCondition;pub use crate::authorization::AuthorizationEngine;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::session::manager::DeviceInfo;pub use crate::session::manager::Session;pub use crate::session::manager::SessionConfig;pub use crate::session::manager::SessionManager;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::SecurityEventBuilder;pub use crate::monitoring::SecurityEventSeverity;pub use crate::monitoring::SecurityEventType;pub use crate::audit::AuditEvent;pub use crate::audit::AuditEventBuilder;pub use crate::audit::AuditEventType;pub use crate::audit::AuditLogger;pub use crate::audit::AuditQuery;pub use crate::audit::AuditQueryBuilder;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::core::IdTokenRequest;pub use crate::server::oidc::core::OidcConfigBuilder;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::OAuth2ConfigBuilder;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 - A boxed,
Send-safe async future returningAuthFrameworkResult<()>. - Auth
Framework Result - Convenience alias for
Result<T, AuthError>.