Skip to main content

better_auth_core/
lib.rs

1//! # Alibi Core
2//!
3//! Core abstractions for the Alibi authentication framework.
4//! Contains traits, types, configuration, and error handling.
5
6#![cfg_attr(
7    test,
8    allow(
9        unused_results,
10        unreachable_pub,
11        reason = "test code intentionally discards setup return values and exposes helpers broadly"
12    )
13)]
14
15extern crate self as better_auth;
16
17pub mod authenticated_user;
18
19pub mod adapter_record;
20
21pub mod background_tasks;
22
23pub mod config;
24
25pub mod email;
26
27pub mod endpoint;
28
29pub mod entity;
30
31pub mod error;
32
33pub mod field_policy;
34
35pub mod hooks;
36
37pub mod middleware;
38
39pub mod openapi;
40
41pub mod oauth_token_conversion;
42
43pub mod plugin;
44
45pub mod schema;
46
47pub mod session;
48
49pub mod store;
50
51#[cfg(test)]
52pub(crate) mod test_store;
53
54pub mod types;
55
56pub mod user_validation;
57
58pub mod verification;
59
60#[doc(hidden)]
61pub mod user_query;
62
63pub mod utils;
64
65pub mod wire;
66
67// Re-export commonly used items
68#[doc(hidden)]
69pub use crate as __private_core;
70pub use adapter_record::{AdapterOutput, AdapterRecord};
71pub use authenticated_user::AuthenticatedUser;
72// Re-export commonly used items
73pub use background_tasks::{
74    BackgroundTaskCompletion, BackgroundTaskHandler, start_background_task,
75};
76// Re-export commonly used items
77pub use better_auth_macros::{AuthSchema, PluginConfig};
78pub use config::{
79    AccountConfig, AccountLinkingConfig, AdvancedConfig, AdvancedDatabaseConfig, AuthConfig,
80    AwaitedNotificationErrorPolicy, CookieAttributes, CookieCacheConfig, CookieCacheStrategy,
81    CookieOverride, CookieRefreshCache, CrossSubDomainConfig, IpAddressConfig, JwtConfig,
82    ManagedSecrets, OAuthStateStrategy, PasswordConfig, SameSite, SessionConfig, UserConfig,
83    core_paths, extract_origin,
84};
85pub use email::{ConsoleEmailProvider, EmailProvider};
86pub use entity::{
87    AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey,
88    AuthSession, AuthTwoFactor, AuthUser, AuthVerification, MemberUserView,
89};
90pub use error::{
91    AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
92};
93pub use hooks::{
94    CallbackContext, RequestHookContext, with_request_hook_context, with_request_hook_context_value,
95};
96pub use middleware::{
97    BodyLimitConfig, BodyLimitMiddleware, CacheRateLimitStorage, CorsConfig, CorsMiddleware,
98    CsrfConfig, CsrfMiddleware, EndpointRateLimit, MemoryRateLimitStorage, Middleware,
99    PluginRateLimit, RateLimitConfig, RateLimitDecision, RateLimitMiddleware, RateLimitResolver,
100    RateLimitRule, RateLimitStorage,
101};
102pub use openapi::{
103    OpenApiBuilder, OpenApiEndpoint, OpenApiField, OpenApiInfo, OpenApiModel, OpenApiOperation,
104    OpenApiRegistry, OpenApiResponse, OpenApiSpec, PluginOpenApiMetadata,
105};
106pub use plugin::{
107    AuthContext, AuthInitContext, AuthPlugin, AuthRoute, BeforeRequestAction, ContextExtensions,
108    HttpEndpointResponse, HttpRequestAction, VerificationEmailOverride,
109    VerificationEmailOverrideHandle,
110};
111pub use schema::AuthSchema;
112pub use session::SessionManager;
113pub use session::cookie_cache::{
114    CacheVersionContext, CacheVersionSource, CookieCacheVersion, CookieCacheVersionResolver,
115};
116pub use store::{
117    AuthStore, AuthTransaction, CacheAdapter, ConsumeApiKeyResult, MemoryCacheAdapter,
118    WalletAddressStore, transaction,
119};
120pub use types::{
121    ApiKey, ApiKeyStartText, ApiKeyStartingCharacters, AuthRequest, AuthResponse,
122    CodeMessageResponse, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation,
123    CreateMember, CreateOrganization, CreatePasskey, CreateSession, CreateTeam, CreateTwoFactor,
124    CreateUser, CreateVerification, CreateWalletAddress, DeviceCode, ErrorCodeMessageResponse,
125    ErrorMessageResponse, Headers, HealthCheckResponse, HttpMethod, Invitation, InvitationStatus,
126    ListUsersParams, Member, OkResponse, Organization, OrganizationPermissions, Passkey,
127    RateLimitErrorResponse, RequestMeta, StatusMessageResponse, StatusResponse,
128    SuccessMessageResponse, SuccessResponse, Team, TeamMember, TwoFactor, UpdateAccount,
129    UpdateApiKey, UpdateDeviceCode, UpdateOrganization, UpdatePasskey, UpdateTeam, UpdateTwoFactor,
130    UpdateUser, UpdateUserRequest, UpdateUserResponse, UpdateVerification, UserFilterValue,
131    ValidationErrorResponse, WalletAddress,
132};
133pub use types::{CreateJwk, Jwk};
134pub use utils::password::{
135    PasswordHashContext, PasswordHashHook, PasswordHasher, ScryptHasher, hash_password,
136    verify_password,
137};
138#[doc(hidden)]
139pub use uuid;
140pub use wire::{
141    AccountView, ApiKeyView, InvitationView, OrganizationView, PasskeyView, SessionView, UserView,
142    VerificationView,
143};