Shell Layer - MFA operations with side effects.
This is the SHELL layer for MFA operations:
All I/O and side effects happen here. Pure business logic is delegated to boundary.user.core.mfa.
Shell Layer - MFA operations with side effects. This is the SHELL layer for MFA operations: - TOTP secret generation - TOTP code verification - Backup code generation (secure random) - QR code generation for authenticator apps All I/O and side effects happen here. Pure business logic is delegated to boundary.user.core.mfa.
(create-mfa-service user-repository config)Factory function: Create MFA service instance.
Args: user-repository: IUserRepository implementation config: MFA configuration map
Returns: MFAService instance
Factory function: Create MFA service instance. Args: user-repository: IUserRepository implementation config: MFA configuration map Returns: MFAService instance
(disable-mfa mfa-service user-id)Disable MFA for a user.
Args: mfa-service: MFAService instance user-id: UUID of user disabling MFA
Returns: {:success? boolean :error string (if failed)}
Disable MFA for a user.
Args:
mfa-service: MFAService instance
user-id: UUID of user disabling MFA
Returns:
{:success? boolean
:error string (if failed)}(enable-mfa mfa-service user-id secret backup-codes verification-code)Enable MFA for a user after verifying setup.
Args: mfa-service: MFAService instance user-id: UUID of user enabling MFA secret: TOTP secret from setup backup-codes: Backup codes from setup verification-code: 6-digit code from authenticator app
Returns: {:success? boolean :error string (if failed)}
Enable MFA for a user after verifying setup.
Args:
mfa-service: MFAService instance
user-id: UUID of user enabling MFA
secret: TOTP secret from setup
backup-codes: Backup codes from setup
verification-code: 6-digit code from authenticator app
Returns:
{:success? boolean
:error string (if failed)}(generate-backup-code)Shell function: Generate a single secure backup code.
Returns: 12-character alphanumeric backup code
Side effects: Secure random generation
Shell function: Generate a single secure backup code. Returns: 12-character alphanumeric backup code Side effects: Secure random generation
(generate-backup-codes)(generate-backup-codes count)Shell function: Generate multiple backup codes.
Args: count: Number of backup codes to generate (default 10)
Returns: Vector of formatted backup codes
Side effects: Secure random generation
Shell function: Generate multiple backup codes. Args: count: Number of backup codes to generate (default 10) Returns: Vector of formatted backup codes Side effects: Secure random generation
(generate-qr-code-data-url totp-uri)Shell function: Generate QR code as a base64-encoded PNG data URL.
Args: totp-uri: TOTP URI string
Returns: Data URL string (data:image/png;base64,...) for use in <img> src attribute. Generated locally using ZXing — no external service required.
Shell function: Generate QR code as a base64-encoded PNG data URL. Args: totp-uri: TOTP URI string Returns: Data URL string (data:image/png;base64,...) for use in <img> src attribute. Generated locally using ZXing — no external service required.
(generate-totp-secret)Shell function: Generate a new TOTP secret.
Returns: Base32-encoded secret string for TOTP
Side effects: Secure random generation
Shell function: Generate a new TOTP secret. Returns: Base32-encoded secret string for TOTP Side effects: Secure random generation
(generate-totp-uri secret account-name issuer)Shell function: Generate TOTP URI for QR code.
Args: secret: Base32-encoded TOTP secret account-name: User identifier (usually email) issuer: Application name
Returns: TOTP URI string for QR code generation
Side effects: None (pure string generation)
Shell function: Generate TOTP URI for QR code. Args: secret: Base32-encoded TOTP secret account-name: User identifier (usually email) issuer: Application name Returns: TOTP URI string for QR code generation Side effects: None (pure string generation)
(get-mfa-status mfa-service user-id)Get MFA status for a user.
Args: mfa-service: MFAService instance user-id: UUID of user
Returns: MFA status map
Get MFA status for a user. Args: mfa-service: MFAService instance user-id: UUID of user Returns: MFA status map
(setup-mfa mfa-service user-id)Initiate MFA setup for a user.
Args: mfa-service: MFAService instance user-id: UUID of user setting up MFA
Returns: {:success? boolean :secret string (if successful) :qr-code-url string (if successful) :backup-codes vector (if successful) :error string (if failed)}
Initiate MFA setup for a user.
Args:
mfa-service: MFAService instance
user-id: UUID of user setting up MFA
Returns:
{:success? boolean
:secret string (if successful)
:qr-code-url string (if successful)
:backup-codes vector (if successful)
:error string (if failed)}(verify-mfa-code _mfa-service user code)Verify MFA code for authentication.
Args: mfa-service: MFAService instance user: User entity code: 6-digit TOTP code or backup code
Returns: {:valid? boolean :used-backup-code? boolean :updates map (if backup code used)}
Verify MFA code for authentication.
Args:
mfa-service: MFAService instance
user: User entity
code: 6-digit TOTP code or backup code
Returns:
{:valid? boolean
:used-backup-code? boolean
:updates map (if backup code used)}(verify-totp-code code secret)Shell function: Verify TOTP code against secret.
Args: code: 6-digit TOTP code (string) secret: Base32-encoded TOTP secret
Returns: Boolean - true if code is valid
Side effects: Time-dependent verification
Shell function: Verify TOTP code against secret. Args: code: 6-digit TOTP code (string) secret: Base32-encoded TOTP secret Returns: Boolean - true if code is valid Side effects: Time-dependent verification
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |