clusev/app/Livewire/Auth/RecoveryCodes.php

36 lines
952 B
PHP

<?php
namespace App\Livewire\Auth;
use App\Models\AuditEvent;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\Layout;
use Livewire\Component;
#[Layout('layouts.auth')]
class RecoveryCodes extends Component
{
/** Regenerate the current user's backup codes (invalidates the old set). */
public function regenerate(): void
{
Auth::user()->replaceRecoveryCodes();
AuditEvent::create([
'user_id' => Auth::id(),
'actor' => Auth::user()->name ?? 'system',
'action' => 'two_factor.recovery_regenerate',
'target' => Auth::user()->email,
'ip' => request()->ip(),
]);
$this->dispatch('notify', message: __('auth.recovery_regenerated'));
}
public function render()
{
return view('livewire.auth.recovery-codes', [
'codes' => Auth::user()->recoveryCodes(),
])->title(__('auth.title_recovery'));
}
}