---
title: "DI a akcie — Refresh Tokens for Laravel | Roundly"
description: "Namiesto fasády injektujte RefreshTokensManager alebo spustite akciu za ktoroukoľvek metódou — vždy beží ten istý kód."
url: https://roundly-consulting.com/sk/open-source/navody/refresh-tokens-for-laravel/bez-fasady
language: sk
---

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

[Refresh Tokens for Laravel](https://roundly-consulting.com/sk/open-source/navody/refresh-tokens-for-laravel.md)

# DI a akcie

Tri rovnocenné vstupné body spúšťajú ten istý kód. Fasáda je najkratšia a odporúčaná voľba. RoundlyConsulting\\RefreshTokens\\RefreshTokensManager — koreň fasády, singleton v kontajneri — poskytuje identické API ako explicitnú závislosť v konštruktore, bez statických volaní. A za každou metódou stojí jednoúčelová akcia s metódou execute(), ktorú môžete skladať do vlastných akcií, jobov či príkazov:

```php
use RoundlyConsulting\RefreshTokens\Actions\RotateRefreshTokenAction;
use RoundlyConsulting\RefreshTokens\RefreshTokensManager;

final class RefreshController
{
    public function __construct(private RefreshTokensManager $refreshTokens) {}

    public function __invoke(Request $request): JsonResponse
    {
        $rotation = $this->refreshTokens->rotate($request->string('refresh_token')->value());
        // …
    }
}

// The raw action:
$rotation = app(RotateRefreshTokenAction::class)->execute($plain, new RotationContext);
```

To isté volanie vo všetkých troch podobách:

```php
// Facade
RefreshTokens::sessions($user)->revokeOthers($currentJti);

// Dependency injection
public function __construct(private RefreshTokensManager $refreshTokens) {}
$this->refreshTokens->sessions($user)->revokeOthers($currentJti);

// The raw action
app(RevokeOtherSessionsAction::class)->execute($user, $currentJti, RevocationReason::LogoutAll);
```

## Metóda fasády → akcia

| Metóda fasády | Akcia |
| --- | --- |
| `issue() / for()->issue()` | `IssueRefreshTokenAction` |
| `redeem()` | `RedeemRefreshTokenAction` |
| `rotate()` | `RotateRefreshTokenAction` |
| `revoke()` | `RevokeRefreshTokenAction` |
| `prune()` | `PruneRefreshTokensAction` |
| `sessions()->all() / find()` | `ListSessionsAction / FindSessionAction` |
| `sessions()->revoke()` | `RevokeSessionByFamilyAction` |
| `sessions()->revokeOthers() / revokeAllExcept() / revokeAll()` | `RevokeOtherSessionsAction / RevokeAllSessionsExceptAction / RevokeAllSessionsAction` |
| `session()->enrich() / revoke()` | `EnrichSessionAction / RevokeSessionAction` |

Každá metóda manažéra aj objektov relácií si akciu pri každom volaní vytvorí z kontajnera, takže platia vaše prepísané väzby aj Event::fake(). RefreshTokens::fake() nahradí manažéra v kontajneri aj za fasádou, takže sa zaznamenajú aj injektovaní manažéri a trait.

## Interné stavebné bloky

RevokeTokenFamilyAction (odvolanie rodiny pri detekcii opätovného použitia) a SealPendingRotationsAction (uzavretie relácií zachytených uprostred rotácie) sú interné (@internal) a nie sú na fasáde — bežia vnútri redeem() a odvolania relácií, preto ich nevolajte priamo.

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