← Dashboard

Security Settings

{#if message}
{message.text}
{/if} {#if loading}
Loading...
{:else}

Two-Factor Authentication

Add an extra layer of security to your account using an authenticator app like Google Authenticator, Authy, or 1Password.

{#if setupStep === 'idle'} {#if totpEnabled}
Two-factor authentication is enabled
{#if !showDisableForm && !showRegenForm}
{/if} {#if showRegenForm}

Regenerate Backup Codes

This will invalidate all existing backup codes.

{/if} {#if showDisableForm}

Disable Two-Factor Authentication

This will make your account less secure.

{/if} {:else}
Two-factor authentication is not enabled
{/if} {:else if setupStep === 'qr'}

Step 1: Scan QR Code

Scan this QR code with your authenticator app:

TOTP QR Code
Can't scan? Enter manually {totpUri.split('secret=')[1]?.split('&')[0] || ''}
{:else if setupStep === 'verify'}

Step 2: Verify Setup

Enter the 6-digit code from your authenticator app:

{:else if setupStep === 'backup'}

Step 3: Save Backup Codes

Save these backup codes in a secure location. Each code can only be used once. If you lose access to your authenticator app, you'll need these to sign in.

{#each backupCodes as code} {code} {/each}
{/if}

Passkeys

Passkeys are a secure, passwordless way to sign in using biometrics (fingerprint or face), a security key, or your device's screen lock.

{#if passkeysLoading}
Loading passkeys...
{:else} {#if passkeys.length > 0}
{#each passkeys as passkey}
{#if editingPasskeyId === passkey.id}
{:else}
{passkey.friendlyName || 'Unnamed passkey'} Added {formatDate(passkey.createdAt)} {#if passkey.lastUsed} · Last used {formatDate(passkey.lastUsed)} {/if}
{/if}
{/each}
{:else}
No passkeys registered
{/if}
{/if}
{/if}