---
title: "Výnimky — Two-Factor for Laravel | Roundly"
description: "Základná trieda TwoFactorException a osem typovaných zlyhaní — nesprávny kód, stav aktivácie, limit pokusov, chybná konfigurácia, neplatný kľúč a ďalšie."
url: https://roundly-consulting.com/sk/open-source/navody/two-factor-for-laravel/vynimky
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Two-Factor for Laravel](https://roundly-consulting.com/sk/open-source/navody/two-factor-for-laravel.md)

# Výnimky

Každá výnimka dedí z abstraktnej TwoFactorException, takže môžete najprv ošetriť konkrétne prípady a nakoniec zachytiť celú rodinu:

```php
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 — 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. |
| `InvalidBase32Exception` | Tajný kľúč nie je platný base32 a nedá sa dekódovať. |
| `InvalidTwoFactorSecretException` | Tajný 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. |
| `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 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/two-factor-for-laravel.md)
