Všetky udalosti sú v RoundlyConsulting\TwoFactor\Events a nesú model používateľa ako $user — nikdy nie tajný kľúč ani kód. Niektoré pridávajú necitlivý detail:
| Udalosť | Kedy | Obsah |
|---|---|---|
TwoFactorEnrolmentStarted | start() uloží nový čakajúci tajný kľúč. | user |
TwoFactorConfirmed | confirm() zapne 2FA. | user |
TwoFactorDisabled | disable() vymaže celý stav 2FA. | user |
RecoveryCodesRegenerated | recoveryCodes()->regenerate() nahradí sadu kódov. | user |
RecoveryCodeConsumed | attempt() spotrebuje záložný kód; remaining je počet zostávajúcich. | user, remaining |
TwoFactorVerified | Používateľ prejde overením, cez TwoFactorMethod::Totp alebo ::RecoveryCode. | user, method |
TwoFactorVerificationFailed | Aktivovaný používateľ neprejde overením — nie pri opakovaní ani pri používateľovi bez tajného kľúča. | user |
TwoFactorReplayDetected | Odmietne sa kód, ktorého časový krok už bol použitý. | user, timestep |
TwoFactorRateLimited | Vstavaný limiter zablokuje používateľa. | user, secondsUntilAvailable |
Počúvanie udalostí
TwoFactorVerified a TwoFactorVerificationFailed vám umožnia auditovať overenia, merať mieru úspechu a zlyhaní a riadiť vlastné blokovanie bez obaľovania fasády — napríklad listenerom, ktorý zvýši vlastný rate limiter:
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\RateLimiter;
use RoundlyConsulting\TwoFactor\Events\TwoFactorVerificationFailed;
Event::listen(function (TwoFactorVerificationFailed $event): void {
RateLimiter::hit("2fa:{$event->user->getKey()}");
});Oznamuje sa aj aktivácia, vypnutie, použitie záložného kódu a pokusy o opakovanie, takže ich môžete bez ďalšieho prepájania posielať do auditného logu či upozornení.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.