---
title: "Odhlásenie a denylist — JWT for Laravel | Roundly"
description: "Odhlasujte používateľov zaradením jti do denylistu — úložisko v cache, ktoré záznam zmaže, keď už token nemôže prejsť overením."
url: https://roundly-consulting.com/sk/open-source/navody/jwt-for-laravel/odhlasenie-a-denylist
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)

# Odhlásenie a denylist

Podpísaný JWT platí až do expirácie, takže odhlásenie znamená zapísať jeho jti a odmietať ho po zvyšok platnosti:

```php
use RoundlyConsulting\Jwt\Facades\Jwt;

Jwt::logout($issued);                 // from a freshly issued token
Jwt::denyClaims(Jwt::verify($jwt));   // or from verified claims (reads jti + exp)

// Power users not using the facade:
app(\RoundlyConsulting\Jwt\Denylist\Contracts\Denylist::class)->denyToken($issued);
```

Typický endpoint na odhlásenie zaradí do denylistu token aktuálneho requestu:

```php
Route::middleware('auth:api')->post('/logout', function () {
    Jwt::denyClaims(Jwt::guard('api')->claims());   // throws ClaimMismatch if jti/exp are absent

    return response()->noContent();
});
```

## Úložisko denylistu

Jwt::denylist() vracia kontrakt Denylist s implementáciou CacheDenylist:

```php
Jwt::denylist()->deny($jti, $expiresAt);   // CarbonImmutable $until
Jwt::denylist()->has($jti);                 // true
```

- has(string $jti): bool — či je identifikátor tokenu práve zakázaný.
- deny(string $jti, CarbonImmutable $until): void — zakáže token do daného okamihu plus leeway overovača; token už po exp + leeway sa ignoruje.
- denyToken(IssuedToken $token): void — zakáže práve vydaný token až do jeho expiresAt.

Záznamy sa ukladajú do cache store jwt.denylist.store (predvolene redis) s prefixom jwt:denylist: a s TTL rovným zvyšnej platnosti tokenu plus jwt.leeway — overovač token prijíma až do exp + leeway, takže zákaz trvá presne rovnako dlho. Denylist tak neomedzene nerastie. Každé zakázanie spustí TokenDenied.

## Ako to guard vynucuje

Guard jwt odmieta zakázané tokeny, kým je guard.check\_denylist true. Kontrola je fail-closed: token bez jti sa v denyliste nedá vyhľadať, preto sa pri zapnutom denyliste nikdy neprihlási. Nastavením JWT\_CHECK\_DENYLIST=false kontrolu aj dotaz do cache úplne vypnete, prípadne ju prepnite pre konkrétny guard cez check\_denylist. Prázdne JWT\_CHECK\_DENYLIST= sa počíta ako nenastavené, takže kontrola zostane zapnutá.

Na odhlásenie používateľa zo všetkých zariadení naraz radšej zvýšte verziu jeho tokenu — pozrite časť Guardy.

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