Module prelude

Module prelude 

Source
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

§Authentication Methods

§Tokens and Sessions

§Permissions and Authorization

§Storage Abstractions

§Web Framework Integration

  • [RequireAuth] - Middleware for requiring authentication
  • [AuthenticatedUser] - Extractor for authenticated users
  • [RequirePermission] - Middleware for permission checking

§Builder Patterns and Helpers

§Time and Rate Limiting Helpers

§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§

rate
time

Enums§

PerformancePreset
UseCasePreset

Type Aliases§

AsyncAuthHandler
AuthFrameworkResult
Common type alias for Results with AuthError