Files
BauIN/app/Livewire/Settings/TwoFactor/RecoveryCodes.php
T
ChristophandClaude Opus 5.5 dedce594a0 Projektgrundlage: Laravel 13 mit Livewire-Starter-Kit und Sail
- Livewire-Starter-Kit (Livewire 4, Flux, Fortify) mit Pest
- Sail mit PHP 8.5, MySQL 8.4, Redis, Meilisearch 1.54.2, Mailpit
- Registrierung deaktiviert, 2FA und Passkeys verfügbar
- Spatie laravel-permission
- gitleaks als Pre-Commit-Hook (.githooks)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 08:53:42 +02:00

52 lines
1.2 KiB
PHP

<?php
namespace App\Livewire\Settings\TwoFactor;
use Exception;
use Laravel\Fortify\Actions\GenerateNewRecoveryCodes;
use Livewire\Attributes\Locked;
use Livewire\Component;
class RecoveryCodes extends Component
{
/** @var list<string> */
#[Locked]
public array $recoveryCodes = [];
/**
* Mount the component.
*/
public function mount(): void
{
$this->loadRecoveryCodes();
}
/**
* Generate new recovery codes for the user.
*/
public function regenerateRecoveryCodes(GenerateNewRecoveryCodes $generateNewRecoveryCodes): void
{
$generateNewRecoveryCodes(auth()->user());
$this->loadRecoveryCodes();
}
/**
* Load the recovery codes for the user.
*/
private function loadRecoveryCodes(): void
{
$user = auth()->user();
if ($user->hasEnabledTwoFactorAuthentication() && $user->two_factor_recovery_codes) {
try {
$this->recoveryCodes = json_decode(decrypt($user->two_factor_recovery_codes), true);
} catch (Exception) {
$this->addError('recoveryCodes', 'Failed to load recovery codes');
$this->recoveryCodes = [];
}
}
}
}