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'); // NativeServiceTokenServiceMetó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 kryptomienOdoslaní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.