Skip to main content

openauth_plugins/two_factor/
mod.rs

1//! Two-factor authentication plugin.
2
3mod backup_codes;
4mod cookies;
5mod errors;
6mod flow;
7mod options;
8mod otp;
9mod otp_routes;
10mod payloads;
11mod routes;
12mod schema;
13mod store;
14mod totp;
15
16pub use backup_codes::{decode_backup_codes, encode_backup_codes, generate_backup_codes};
17pub use errors::TWO_FACTOR_ERROR_CODES;
18pub use options::{
19    BackupCodeOptions, BackupCodeStorage, OtpOptions, OtpStorage, SendOtp, TotpOptions,
20    TwoFactorOptions,
21};
22pub use totp::{totp_code, totp_uri, verify_totp_code};
23
24use openauth_core::plugin::AuthPlugin;
25
26pub const UPSTREAM_PLUGIN_ID: &str = "two-factor";
27
28pub fn two_factor(options: TwoFactorOptions) -> AuthPlugin {
29    let options = std::sync::Arc::new(options);
30    routes::plugin(options)
31}