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

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

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

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ádyKontraktPredvolená implementácia
mintAccessToken() / mint() / mintChallengeToken() / mintEmailVerifyToken()UserTokens\Contracts\UserTokenIssuerNativeUserTokenIssuer
verify()UserTokens\Contracts\UserTokenVerifierNativeUserTokenVerifier
services()->issue() / request() / authenticate()ServiceTokens\Contracts\ServiceTokenIssuerNativeServiceTokenService
services()->verify()ServiceTokens\Contracts\ServiceTokenVerifierNativeServiceTokenService
denylist() / logout() / denyClaims()Denylist\Contracts\DenylistCacheDenylist

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

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.