Každá výnimka dedí z abstraktnej TwoFactorException, takže môžete najprv ošetriť konkrétne prípady a nakoniec zachytiť celú rodinu:
use RoundlyConsulting\TwoFactor\Exceptions\InvalidTwoFactorCodeException;
use RoundlyConsulting\TwoFactor\Exceptions\TwoFactorException;
use RoundlyConsulting\TwoFactor\Exceptions\TwoFactorNotPendingException;
use RoundlyConsulting\TwoFactor\Facades\TwoFactor;
try {
TwoFactor::for($user)->confirm($request->string('code')->toString());
} catch (InvalidTwoFactorCodeException $e) {
// wrong code — ask again
} catch (TwoFactorNotPendingException $e) {
// nothing pending, or 2FA is already enabled
} catch (TwoFactorException $e) {
// any other package failure
}| Výnimka | Kedy nastane |
|---|---|
TwoFactorException | Abstraktná základná trieda (RuntimeException) — zachytí celú rodinu výnimiek. |
InvalidTwoFactorCodeException | confirm() dostane nesprávny kód. |
TwoFactorNotPendingException | Potvrdenie bez čakajúcej aktivácie — aj vtedy, keď je 2FA už zapnuté. |
TwoFactorAlreadyEnabledException | Spustenie aktivácie pre používateľa, ktorý už má 2FA zapnuté. |
TwoFactorRateLimitedException | Vstavaný limiter zablokoval overenie; nesie secondsUntilAvailable. |
InvalidTwoFactorConfigException | Neznáma hodnota algorithm, recovery_codes.storage alebo replay_guard; digits, period, window, secret_length, attempts.*, recovery_codes.count či cache.ttl mimo povoleného rozsahu alebo nie celé číslo; attempts, ktoré nie je poľom ani null; issuer či cache store, ktoré nie sú reťazcom; alebo názov tabuľky či stĺpca, ktorý nie je reťazcom. |
InvalidBase32Exception | Tajný kľúč nie je platný base32 a nedá sa dekódovať. |
TwoFactorAssertionFailedException | Zlyhala asercia TwoFactorFake. |
Výnimky samotného crypto-for-laravel sa nikdy nedostanú von: chyba dekódovania base32 sa zmení na InvalidBase32Exception a chyba parametra či dĺžky OTP na InvalidTwoFactorConfigException.
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.