Skip to main content

allowthem_core/
core.rs

1pub mod access_tokens;
2pub mod api_tokens;
3pub mod applications;
4pub mod audit;
5pub mod auth_client;
6pub mod authorization;
7pub mod csrf;
8pub mod db;
9pub mod email;
10pub mod email_config;
11pub mod email_render;
12pub mod email_smtp;
13pub mod email_verification;
14pub mod email_webhook;
15pub mod error;
16pub mod event_sink;
17pub mod events;
18pub mod handle;
19pub mod invitations;
20pub mod jwt;
21mod mfa_encrypt;
22pub mod oauth;
23pub mod oauth_github;
24pub mod oauth_google;
25pub mod password;
26pub mod password_reset;
27pub mod permissions;
28pub mod roles;
29pub mod sessions;
30pub mod signing_keys;
31pub mod social_github;
32pub mod social_google;
33pub mod social_oidc;
34mod social_provider_encrypt;
35pub mod social_providers;
36pub mod token_cleanup;
37pub mod token_issuance;
38pub mod totp;
39pub mod types;
40pub mod users;
41pub mod webhook_sig;
42
43pub use access_tokens::{AccessTokenClaims, has_scope};
44pub use audit::{AuditEntry, AuditEvent};
45pub use auth_client::{AuthClient, AuthFuture, EmbeddedAuthClient};
46pub use csrf::{derive_csrf_token, verify_csrf_token};
47pub use db::Db;
48pub use email::{EmailMessage, EmailSender, EmailTemplate, LogEmailSender, NoopEmailSender};
49pub use email_config::{
50    EmailConfig, EmailConfigMode, ManagedOverride, SetEmailConfig, SmtpOverride, SmtpTlsMode,
51    WebhookOverride,
52};
53pub use email_render::{EmailBranding, RenderedEmail, render as render_email};
54pub use email_smtp::{SmtpConfig, SmtpEmailSender, SmtpTls};
55pub use email_webhook::{WebhookEmailConfig, WebhookEmailSender};
56pub use error::{AccessTokenError, AuthError};
57pub use event_sink::{AuthEvent, EventSink, LoggingEventSink, NoopEventSink};
58pub use events::{
59    EventContext, LifecycleEvent, LifecycleEventReceiver, LifecycleEventSender, RegisteredEvent,
60    RegistrationSource,
61};
62pub use handle::{AllowThem, AllowThemBuilder, BuildError, LoginOutcome, OnUserActive};
63pub use invitations::Invitation;
64pub use jwt::{Claims, JwtConfig, generate_token as generate_jwt, validate_token};
65pub use oauth::{OAuthAccountInfo, OAuthProvider, OAuthStateInfo, OAuthUserInfo};
66pub use oauth_github::GitHubProvider;
67pub use oauth_google::GoogleProvider;
68pub use sessions::{
69    SessionConfig, generate_token, hash_token, parse_session_cookie, session_cookie,
70};
71pub use signing_keys::{
72    JwkEntry, JwkSet, OidcDiscovery, SigningKey, build_discovery, build_jwks, decrypt_private_key,
73};
74pub use social_github::GitHubSocialProvider;
75pub use social_google::GoogleSocialProvider;
76pub use social_oidc::{CustomOidcSocialProvider, DISCOVERY_TTL, DiscoveryDoc};
77pub use social_providers::{
78    ProviderType, SocialProvider, SocialProviderConfig, SocialProviderRow, SocialUserInfo,
79    build_social_provider,
80};
81pub use token_issuance::{
82    RefreshToken, TokenError, TokenResponse, compute_at_hash, exchange_authorization_code,
83    exchange_refresh_token, generate_refresh_token, hash_refresh_token, mint_access_token,
84    mint_id_token, verify_pkce_s256,
85};
86pub use types::*;
87pub use webhook_sig::{SigError, sign_payload, verify_payload};
88
89#[cfg(test)]
90mod db_tests;