Skip to main content
Version: v0.16

Authentication Configuration

Configure the Authentication module through the Admin Panel or Admin API.

General Settings

Auth Configuration

SettingDescription
Rate Limiting AttemptsNumber of failed attempts before rate limiting
Access Token ExpiryHow long access tokens remain valid (ms)
Refresh Token ExpiryHow long refresh tokens remain valid (ms)

Local Authentication

Enable Sign-in Method

Options

SettingDescription
EnabledAllow email/password registration
Email VerificationRequire users to verify email
Verification Required for LoginBlock unverified users
Email Module Required

Automatic email verification requires the Email module to be configured.

Two-Factor Authentication

2FA Settings

Available Methods

MethodDescription
Phone OTPOne-time password sent via SMS
QR CodeTOTP app (Google Authenticator, Authy)
SMS Module Required

Phone-based 2FA requires the SMS module to be configured.

OAuth Providers

OAuth Configuration

Configuration Steps

  1. Navigate to Authentication > Settings
  2. Enable desired provider
  3. Enter Client ID and Client Secret
  4. Configure callback URL in provider's console

Account Linking

When enabled, users authenticating with the same email across different providers will have their accounts linked automatically.

Magic Link Configuration

SettingDescription
EnabledAllow passwordless login
Redirect URIWhere to send users after verification
Link ExpiryHow long magic links remain valid

Email Restrictions

Block or allow email addresses when they are accepted: local registration, change-email, OAuth new accounts and anonymous upgrade, admin create/patch, gRPC userCreate, and team invites. Not enforced on login, forgot-password, or magic-link flows for existing users. Off by default.

SettingDefaultDescription
EnabledfalseMaster switch
Block Disposable EmailstrueReject addresses on the bundled disposable-domain list
Block Plus AddressingtrueReject + in the local part (user+tag@domain)
Blocked Addresses[]Exact email denylist
Blocked Domains[]Domain denylist; suffix match (evil.com also blocks mail.evil.com; not a bare TLD)
Allowed Addresses[]Exact allowlist; overrides blocks, not reserved @anonymous.com
Allowed Domains[]Domain allowlist; suffix match; overrides blocks, not reserved @anonymous.com

Rejected requests return This email address is not allowed (EMAIL_NOT_ALLOWED). The disposable list is bundled (~8k domains and wildcards); no runtime network fetch.

@anonymous.com and its subdomains are always reserved for Conduit-created anonymous users and cannot be registered or invited. Change-email verification links are not rechecked when redeemed, so a token issued before restrictions were enabled still completes.

Token Configuration

Access Tokens

Short-lived tokens for API authentication:

  • Default: 1 hour
  • Recommended range: 15 minutes - 24 hours

Refresh Tokens

Long-lived tokens for obtaining new access tokens:

  • Default: 7 days
  • Recommended range: 1 day - 30 days

Security Best Practices

  1. Enable email verification in production
  2. Use 2FA for sensitive applications
  3. Set appropriate token expiry times
  4. Configure rate limiting to prevent brute force
  5. Use HTTPS for all authentication endpoints