NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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ýnimkaKedy nastane
TwoFactorExceptionAbstraktná základná trieda (RuntimeException) — zachytí celú rodinu výnimiek.
InvalidTwoFactorCodeExceptionconfirm() dostane nesprávny kód.
TwoFactorNotPendingExceptionPotvrdenie bez čakajúcej aktivácie — aj vtedy, keď je 2FA už zapnuté.
TwoFactorAlreadyEnabledExceptionSpustenie aktivácie pre používateľa, ktorý už má 2FA zapnuté.
TwoFactorRateLimitedExceptionVstavaný limiter zablokoval overenie; nesie secondsUntilAvailable.
InvalidTwoFactorConfigExceptionNezná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 — vrátane window zadaného priamo do verify() mimo 0–2 a cache.ttl nižšieho než (2 × window + 1) × period; 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.
InvalidBase32ExceptionTajný kľúč nie je platný base32 a nedá sa dekódovať.
InvalidTwoFactorSecretExceptionTajný kľúč sa dá dekódovať, no nie je použiteľný — je prázdny, kratší ako 10 bajtov alebo má len nulové bajty — v currentCode(), verify() či attempt(); provisioningUri() ju vyhodí pri prázdnom kľúči.
TwoFactorAssertionFailedExceptionZlyhala asercia TwoFactorFake.

Výnimky samotného crypto-for-laravel sa nikdy nedostanú von: chyba dekódovania base32 sa zmení na InvalidBase32Exception a chyba parametra OTP na InvalidTwoFactorSecretException. Okno, počet číslic, perióda aj dĺžka kľúča sa ohraničia ešte predtým, ako sa dostanú ku crypto, takže jediný parameter, ktorý môže ešte odmietnuť, je tajný kľúč.

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 kryptomien

Odoslaní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.