Skip to main content

better_auth_core/
lib.rs

1//! # Better Auth Core
2//!
3//! Core abstractions for the Better Auth authentication framework.
4//! Contains traits, types, configuration, and error handling.
5
6pub mod adapters;
7pub mod config;
8pub mod email;
9pub mod entity;
10pub mod error;
11pub mod extractors;
12pub mod hooks;
13pub mod middleware;
14pub mod openapi;
15pub mod plugin;
16pub mod session;
17pub mod types;
18pub mod types_impls;
19pub mod types_org;
20pub mod utils;
21
22// Re-export derive macros when the `derive` feature is enabled
23#[cfg(feature = "derive")]
24pub use better_auth_derive::*;
25
26// Re-export commonly used items
27pub use adapters::{
28    AccountOps, ApiKeyOps, CacheAdapter, DatabaseAdapter, InvitationOps, MemberOps, MemoryAccount,
29    MemoryApiKey, MemoryCacheAdapter, MemoryDatabaseAdapter, MemoryInvitation, MemoryMember,
30    MemoryOrganization, MemoryPasskey, MemorySession, MemoryTwoFactor, MemoryUser,
31    MemoryVerification, OrganizationOps, PasskeyOps, SessionOps, TwoFactorOps, UserOps,
32    VerificationOps,
33};
34#[cfg(feature = "sqlx-postgres")]
35pub use adapters::{SqlxAdapter, SqlxEntity};
36pub use config::{
37    AccountConfig, AccountLinkingConfig, AdvancedConfig, AdvancedDatabaseConfig, Argon2Config,
38    AuthConfig, CookieAttributes, CookieCacheConfig, CookieCacheStrategy, CookieOverride,
39    CrossSubDomainConfig, IpAddressConfig, JwtConfig, PasswordConfig, SameSite, SessionConfig,
40    core_paths, extract_origin,
41};
42pub use email::{ConsoleEmailProvider, EmailProvider};
43pub use entity::{
44    AuthAccount, AuthAccountMeta, AuthApiKey, AuthApiKeyMeta, AuthInvitation, AuthInvitationMeta,
45    AuthMember, AuthMemberMeta, AuthOrganization, AuthOrganizationMeta, AuthPasskey,
46    AuthPasskeyMeta, AuthSession, AuthSessionMeta, AuthTwoFactor, AuthTwoFactorMeta, AuthUser,
47    AuthUserMeta, AuthVerification, AuthVerificationMeta, MemberUserView, PASSWORD_HASH_KEY,
48};
49pub use error::{
50    AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
51};
52#[cfg(feature = "axum")]
53pub use extractors::{
54    AdminRole, AdminSession, AuthRequestExt, AxumAuthResponse, CurrentSession, OptionalSession,
55    Pending2faToken, ValidatedJson,
56};
57pub use hooks::{DatabaseHooks, HookedDatabaseAdapter};
58pub use middleware::{
59    BodyLimitConfig, BodyLimitMiddleware, CorsConfig, CorsMiddleware, CsrfConfig, CsrfMiddleware,
60    EndpointRateLimit, Middleware, RateLimitConfig, RateLimitMiddleware,
61};
62pub use openapi::{OpenApiBuilder, OpenApiInfo, OpenApiOperation, OpenApiResponse, OpenApiSpec};
63#[cfg(feature = "axum")]
64pub use plugin::AxumPlugin;
65pub use plugin::{AuthContext, AuthPlugin, AuthRoute, AuthState, BeforeRequestAction};
66pub use session::SessionManager;
67pub use types::{
68    Account, ApiKey, AuthRequest, AuthResponse, CodeMessageResponse, CreateAccount, CreateApiKey,
69    CreateInvitation, CreateMember, CreateOrganization, CreatePasskey, CreateSession,
70    CreateTwoFactor, CreateUser, CreateVerification, ErrorMessageResponse, HealthCheckResponse,
71    HttpMethod, Invitation, InvitationStatus, ListUsersParams, OkResponse, Passkey,
72    RateLimitErrorResponse, Session, StatusMessageResponse, StatusResponse, SuccessMessageResponse,
73    SuccessResponse, TwoFactor, UpdateAccount, UpdateApiKey, UpdateOrganization, UpdatePasskey,
74    UpdateUser, UpdateUserRequest, UpdateUserResponse, User, ValidationErrorResponse, Verification,
75};
76pub use utils::password::{PasswordHasher, hash_password, verify_password};