Authenticator app

Time-based one-time passwords (TOTP).

@if ($enabled)
Status
Active since {{ $confirmedAt?->format('d M Y, H:i') ?? '—' }}
Recovery codes left
{{ $recoveryRemaining }} of {{ \App\Services\TwoFactorAuth::RECOVERY_CODE_COUNT }} @if ($recoveryRemaining <= 2) Running low — regenerate soon. @endif
@else @if ($required) Your role mandates multi-factor authentication. Set up your authenticator app to restore access to the system. @else Anyone who learns your password can sign in as you and reach patient records. @endif @endif
@if (! $enabled) Set up authenticator app @endif
@if ($enabled)

Generate new recovery codes

Replaces every existing code. Confirm with your password.

@csrf

Turn off two-step verification

@if ($required)

Your role requires multi-factor authentication, so it cannot be turned off. A system administrator can review or change your role.

@else
@csrf @endif
@endif

Recent verified sessions

@forelse ($sessions as $session)

{{ $session['at']?->format('d M Y, H:i') ?? 'Unknown time' }}

{{ $session['ip'] ?? 'unknown IP' }}

@empty

No verified sessions recorded yet.

@endforelse

Every sign-in, failed attempt, second-factor challenge and recovery-code use is written to the audit trail with your IP address and device.