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

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:

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ýnimkaKedy nastane
InvalidClientDataclientData.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.
ChallengeExpiredPre ID ceremónie neexistuje challenge — vypršala alebo už bola použitá.
ChallengeMismatchChallenge sa nezhoduje, bola vydaná pre iného používateľa alebo pre iný typ ceremónie.
OriginMismatchOrigin nie je v allowliste alebo cross-origin ceremónia nie je povolená.
RpIdMismatchHash RP ID v údajoch autentifikátora sa nezhoduje.
InvalidAuthenticatorDataChybné ú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.
UserVerificationRequiredVyžadovalo sa overenie používateľa, no autentifikátor ho neoveril.
UnsupportedAlgorithmAlgoritmus kľúča nie je medzi ponúknutými.
SignatureInvalidPodpis neprešiel overením.
SignCountRegressionPočítadlo sa neposunulo a sign_count_policy je reject.
CredentialAlreadyRegisteredID 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.
CredentialNotFoundJednotný 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.
InvalidExpectationAuthenticationExpectation::owner() dostal neuložený model — programátorská chyba, nie výsledok ceremónie.

Konfigurácia, dekódovanie a atestácia

VýnimkaKedy nastane
InvalidConfigurationPri š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é.
InvalidCoseKeyVerejný COSE kľúč je neplatný.
InvalidAttestationMatematika atestačného vyhlásenia nesedí.
AttestationUntrustedVyhlá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.
AttestationRequiredStupeň dôvery vyžaduje vyhlásenie a autentifikátor poslal none.
UnsupportedAttestationFormatFormát nemá overovač (podporované sú none, packed a apple).
PasskeyAssertionFailedZlyhala 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

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.