---
title: "Výnimky — JWT for Laravel | Roundly"
description: "Hierarchia JwtException pre zlyhania tokenov a výnimky chybnej konfigurácie, ktoré skončia ako 500 namiesto 401."
url: https://roundly-consulting.com/sk/open-source/navody/jwt-for-laravel/vynimky
language: sk
---

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

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

# Výnimky

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ýnimka | Kedy nastane |
| --- | --- |
| `JwtException` | Základná trieda — zachyťte ju a ošetríte akékoľvek zlyhanie tokenu. |
| `MalformedToken` | Token nemá tri segmenty, má neplatný base64url, hlavička či payload nie je JSON objekt, alebo má viac než 8 KB. |
| `AlgorithmMismatch` | alg v hlavičke nie je pripnutý algoritmus alebo typ kľúča nesedí — blokuje alg:none a zámenu RS256↔HS256. |
| `InvalidSignature` | Podpis RS256 alebo HS256 nesedí; aj každý iss servisného tokenu, ktorý v režime tajomstiev pre jednotlivé služby chýba v mape tajomstiev — aj keď je na zozname povolených. |
| `UnexpectedTokenType` | Hlavička typ je prítomná a nie je JWT (explicitné typovanie podľa RFC 8725). |
| `UnencodableClaims` | Claim sa nedá serializovať do JSON, napr. ne-UTF-8 bajty v doplnkovom claime. |
| `TokenExpired` | exp mínus leeway je v minulosti. |
| `TokenNotYetValid` | nbf alebo iat je v budúcnosti nad rámec leeway. |
| `UnexpectedCriticalHeader` | Token nesie hlavičku crit. |
| `ClaimMismatch` | Povinný claim chýba alebo má zlý typ; nesedí pripnutý iss/aud; zlyhá kontrola scope, audience či vydavateľa servisného tokenu. |
| `KeyLoadFailed` | Kľúč chýba, nedá sa prečítať (súbor existuje, no PHP proces ho nemôže čítať), nie je RSA, má menej než 2048 bitov alebo nie je nastavená jeho cesta. |
| `EmptySecret` | HMAC tajomstvo je prázdne. |
| `PemAsHmacSecret` | Ako HMAC tajomstvo bol podaný kľúč v PEM formáte. |
| `WeakSecret` | HMAC tajomstvo má menej než 32 bajtov, je jeden opakovaný bajt alebo obsahuje surový DER kľúč. |

```php
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 alebo v nej dvakrát uvedený vydavateľ či identity, ktorá nie je ClaimsAuthenticatable. Tajomstvo nikdy nevypíše: opakovaného vydavateľa pomenuje, len ak naň vyzerá, inak uvedie pozície položiek, a pri service.secret / service.secrets správa uvedie len typ hodnoty („must be a string or null, array given“), pričom samotná hodnota sa do rámcov stack trace nedostane.
- 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 či nečitateľnú cestu aj riešenie, napríklad spustiť jwt:generate-keys, nastaviť env premennú alebo dať PHP používateľovi právo na čítanie.

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