---
title: "Výnimky — Passkeys for Laravel | Roundly"
description: "Jeden základ PasskeyException s typovanými potomkami pre chyby ceremónie, konfigurácie, dekódovania a atestácie — s lokalizovateľnými hláseniami."
url: https://roundly-consulting.com/sk/open-source/navody/passkeys-for-laravel/vynimky
language: sk
---

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

[Passkeys for Laravel](https://roundly-consulting.com/sk/open-source/navody/passkeys-for-laravel.md)

# Výnimky

Každá chyba dedí z RoundlyConsulting\\Passkeys\\Exceptions\\PasskeyException (RuntimeException). Zachyťte základ pre jednotnú odpoveď, alebo konkrétneho potomka pre jemnejšie riadenie:

```php
use RoundlyConsulting\Passkeys\Exceptions\PasskeyException;

try {
    $passkey = Passkeys::authenticate($response);
} catch (PasskeyException $e) {
    // Return a uniform failure to the client; log $e server-side.
    return response()->json(['message' => 'Sign-in failed.'], 422);
}
```

## Chyby ceremónie

| Výnimka | Kedy nastane |
| --- | --- |
| `InvalidClientData` | clientData.type je nesprávny, odpoveď je poškodená, atestačný fmt nie je platný identifikátor formátu alebo identifikátor používateľa nie je base64url z náhodných bajtov. |
| `ChallengeExpired` | Pre ID ceremónie neexistuje challenge — vypršala alebo už bola použitá. |
| `ChallengeMismatch` | Challenge sa nezhoduje, bola vydaná pre iného používateľa alebo pre iný typ ceremónie. |
| `OriginMismatch` | Origin nie je v allowliste alebo cross-origin ceremónia nie je povolená. |
| `RpIdMismatch` | Hash RP ID v údajoch autentifikátora sa nezhoduje. |
| `InvalidAuthenticatorData` | Chybné údaje autentifikátora, chýbajúci príznak prítomnosti, nekonzistentné príznaky zálohy, oprávnenosť na zálohu odlišná od registrovanej, chýbajúce atestované údaje alebo registrácia s ID kľúča dlhším ako 1023 bajtov. |
| `UserVerificationRequired` | Vyžadovalo sa overenie používateľa, no autentifikátor ho neoveril. |
| `UnsupportedAlgorithm` | Algoritmus kľúča nie je medzi ponúknutými. |
| `SignatureInvalid` | Podpis neprešiel overením. |
| `SignCountRegression` | Počítadlo sa neposunulo a sign\_count\_policy je reject. |
| `CredentialAlreadyRegistered` | ID kľúča je už uložené, vrátane odvolaných — aj pre neúspešnú z dvoch súbežných registrácií s rovnakým ID. |
| `CredentialNotFound` | Jednotný neúspech: neznámy kľúč, kľúč, ktorého vlastník bol zmazaný (aj cez soft delete), už nemá jeho identifikátor používateľa alebo sa už nedá priradiť k modelu, kľúč, ktorý ceremónia viazaná na používateľa neponúkla, prihlásenie bez mena bez userHandle, nesplnené očakávanie, kľúč odvolaný počas overovania alebo premenovanie či odvolanie kľúča iného účtu. |
| `InvalidExpectation` | AuthenticationExpectation::owner() dostal neuložený model — programátorská chyba, nie výsledok ceremónie. |

## Konfigurácia, dekódovanie a atestácia

| Výnimka | Kedy nastane |
| --- | --- |
| `InvalidConfiguration` | Pri štarte: konfiguračná hodnota nesprávneho tvaru s názvom kľúča (table až pri prvom čítaní), nepreverený algoritmus, dôvera prísnejšia ako ignore pri attestation none alebo tolerancia mimo 0–3600. Pri prvej ceremónii: chýba rp.id alebo origins. Pri prvom použití: nečitateľná kotva dôvery. |
| `MalformedCbor` | Údaje CBOR sú poškodené. |
| `InvalidCoseKey` | Verejný COSE kľúč je neplatný. |
| `InvalidAttestation` | Matematika atestačného vyhlásenia nesedí. |
| `AttestationUntrusted` | Vyhlásenie je v poriadku, no politika ho odmietla — neukotvený koreň, žiadne nakonfigurované kotvy, self-atestácia pri basic, neplatná certifikačná cesta, expirovaný certifikát alebo nepovolený AAGUID. |
| `AttestationRequired` | Stupeň dôvery vyžaduje vyhlásenie a autentifikátor poslal none. |
| `UnsupportedAttestationFormat` | Formát nemá overovač (podporované sú none, packed a apple). |
| `PasskeyAssertionFailed` | Zlyhala asercia Passkeys::fake(). |

## Lokalizované hlásenia

Hlásenia sa prekladajú cez menný priestor passkeys::errors.\*, ktorý je pribalený v angličtine a slovenčine a riadi sa jazykom aplikácie — publikujte passkeys-translations, ak ich chcete upraviť alebo doplniť ďalší jazyk. Hlásenie je celé v jazyku aplikácie: aj vlastné doplňujúce časti balíka — aký tvar musí mať nastavenie, prečo je atestačný výrok poškodený, ktorú požiadavku na certifikát nespĺňa — sú prekladové kľúče, kým doslovné tokeny ako x5c, CA:FALSE, OID či kľúče nastavení zostávajú nezmenené. Celočíselné a enum nastavenia overuje package-toolkit-for-laravel, ktorého hlásenia sú len v angličtine.

Text z nižšej vrstvy — dekodéra CBOR/COSE alebo parsera certifikátov — sa preložiť nedá, preto sa do hlásenia nikdy nedostane. Vývojárom zostáva k dispozícii:

- $e->getPrevious() — výnimka nižšej vrstvy (napríklad CryptoException) za MalformedCbor, InvalidCoseKey, InvalidAuthenticatorData::because(), UnsupportedAlgorithm::because() a za InvalidAttestation::malformedStatement() pri chybe parsera.
- $e->context() — \['reason' => '…'\] pri štyroch továrňach, ktoré nesú dôvod, inak \[\]. Obsluha výnimiek Laravelu ho do záznamu v logu pridá automaticky.

## 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/passkeys-for-laravel.md)
