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

RoundlyConsulting\Jwt\Jose\Exceptions\JwtException rozširuje RuntimeException a je základom každej chyby tokenu. Zachyťte ju na jednotné ošetrenie alebo zachyťte podtriedu pre presnú príčinu:

VýnimkaKedy nastane
JwtExceptionZákladná trieda — zachyťte ju a ošetríte akékoľvek zlyhanie tokenu.
MalformedTokenToken nemá tri segmenty, má neplatný base64url, hlavička či payload nie je JSON objekt, alebo má viac než 8 KB.
AlgorithmMismatchalg v hlavičke nie je pripnutý algoritmus alebo typ kľúča nesedí — blokuje alg:none a zámenu RS256↔HS256.
InvalidSignaturePodpis RS256 alebo HS256 nesedí; aj neznámy iss servisného tokenu v režime tajomstiev pre jednotlivé služby.
UnexpectedTokenTypeHlavička typ je prítomná a nie je JWT (explicitné typovanie podľa RFC 8725).
UnencodableClaimsClaim sa nedá serializovať do JSON, napr. ne-UTF-8 bajty v doplnkovom claime.
TokenExpiredexp mínus leeway je v minulosti.
TokenNotYetValidnbf alebo iat je v budúcnosti nad rámec leeway.
UnexpectedCriticalHeaderToken nesie hlavičku crit.
ClaimMismatchPovinný claim chýba alebo má zlý typ; nesedí pripnutý iss/aud; zlyhá kontrola scope, audience či vydavateľa servisného tokenu.
KeyLoadFailedKľúč chýba, nedá sa prečítať, nie je RSA, má menej než 2048 bitov alebo nie je nastavená jeho cesta.
EmptySecretHMAC tajomstvo je prázdne.
PemAsHmacSecretAko HMAC tajomstvo bol podaný kľúč v PEM formáte.
WeakSecretHMAC tajomstvo má menej než 32 bajtov, je jeden opakovaný bajt alebo obsahuje surový DER kľúč.
use RoundlyConsulting\Jwt\Facades\Jwt;
use RoundlyConsulting\Jwt\Jose\Exceptions\JwtException;
use RoundlyConsulting\Jwt\Jose\Exceptions\TokenExpired;

try {
    $claims = Jwt::verify($jwt);
} catch (TokenExpired $e) {
    // Prompt a re-login / refresh flow.
} catch (JwtException $e) {
    // Any other token failure: 401.
}

Chybná konfigurácia je 500, nie 401

Oba guardy premenia JwtException na null používateľa — teda 401. Chyby konfigurácie touto cestou ísť nesmú, preto zámerne nie sú JwtException:

  • RoundlyConsulting\Jwt\Exceptions\JwtMisconfigured — nenastavený issuer či audience (null alebo prázdny), názov guardu, ktorý nie je jwt guard, nevolateľná token_version, mintAccessToken() na guarde s requestom pre iné audience alebo konfiguračná hodnota nesprávneho tvaru — TTL five, nerozpoznaný prepínač, chybná dvojica v service.secrets či identity, ktorá nie je ClaimsAuthenticatable.
  • RoundlyConsulting\Jwt\ServiceTokens\Exceptions\ServiceAuthMisconfigured — chýbajúce alebo slabé tajomstvo, chýbajúci názov služby, chýbajúce audience či vlastný vydavateľ pri vydaní, chýbajúci vlastný záznam v mape tajomstiev alebo rezervované doplnkové claimy.
  • KeyLoadFailed je JwtException, no guard jwt ju vyhodí ďalej ešte pred všeobecným ošetrením — chýbajúci či neplatný RSA kľúč je chyba prevádzky, nie neprihlásený volajúci.

Správy KeyLoadFailed sú konkrétne: pomenujú chýbajúcu cestu aj riešenie, napríklad spustiť jwt:generate-keys alebo nastaviť env premennú.

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.