---
title: "DI a akcie — JWT for Laravel | Roundly"
description: "Bez fasády: vložte si JwtManager a máte to isté API bez statických volaní, alebo použite kontrakty za ním — triedy akcií balík nemá."
url: https://roundly-consulting.com/sk/open-source/navody/jwt-for-laravel/bez-fasady
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)

# DI a akcie

Fasáda je odporúčaná voľba, nie povinnosť. Máte tri vstupné body a všetky vedú k rovnakému kódu:

- Fasáda Jwt — najkratší zápis, vhodný pre väčšinu kódu.
- Manager RoundlyConsulting\\Jwt\\JwtManager vložený cez konštruktor — je koreňom fasády, singletonom v kontajneri s presne rovnakým API, len ako explicitná závislosť bez statických volaní.
- Kontrakty za ním. jwt je bezstavový kodek tokenov s denylistom v cache, preto namiesto tried akcií podpisuje a overuje cez servisné objekty v kontajneri, ktoré môžete získať priamo.

## Vloženie managera

```php
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use RoundlyConsulting\Jwt\JwtManager;
use RoundlyConsulting\Jwt\UserTokens\AccessTokenRequest;

final class TokenController
{
    public function __construct(private JwtManager $jwt) {}

    public function __invoke(Request $request): JsonResponse
    {
        $issued = $this->jwt->guard('users')->mintAccessToken(AccessTokenRequest::for($request->user()->id));

        return response()->json(['access_token' => $issued->token]);
    }
}
```

Jwt::fake() vymení manager vo fasáde aj v kontajneri, takže sa zaznamená aj vložený JwtManager.

## Použitie kontraktu

```php
use RoundlyConsulting\Jwt\ServiceTokens\Contracts\ServiceTokenIssuer;
use RoundlyConsulting\Jwt\UserTokens\Contracts\UserTokenIssuer;

// The contracts behind it:
app(UserTokenIssuer::class)->mintAccessToken($request);     // NativeUserTokenIssuer
app(ServiceTokenIssuer::class)->issue('billing');           // NativeServiceTokenService
```

## Metóda fasády → kontrakt

| Metóda fasády | Kontrakt | Predvolená implementácia |
| --- | --- | --- |
| `mintAccessToken() / mint() / mintChallengeToken() / mintEmailVerifyToken()` | `UserTokens\Contracts\UserTokenIssuer` | NativeUserTokenIssuer |
| `verify()` | `UserTokens\Contracts\UserTokenVerifier` | NativeUserTokenVerifier |
| `services()->issue() / request() / authenticate()` | `ServiceTokens\Contracts\ServiceTokenIssuer` | NativeServiceTokenService |
| `services()->verify()` | `ServiceTokens\Contracts\ServiceTokenVerifier` | NativeServiceTokenService |
| `denylist() / logout() / denyClaims()` | `Denylist\Contracts\Denylist` | CacheDenylist |

Priamo získaný kontrakt obchádza manager: nespustí udalosť TokenVerificationFailed z Jwt::verify() a Jwt::fake() ho nezaznamená. Ak chcete zmeniť správanie fasády, nahraďte kontrakt — pozrite Rozšírenie.

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