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

Viacero guardov

Viacero typov účtov — napríklad users a clients, každý s vlastnou tabuľkou — môže bežať na vlastnom jwt guarde. Každý jwt guard hľadá sub cez vlastný provider, preto dajte každému guardu vlastné audience; inak sa token používateľa so sub = 5 prihlási ako klient č. 5:

// config/auth.php
'guards' => [
    'users'   => ['driver' => 'jwt', 'provider' => 'users',   'audience' => env('JWT_USERS_AUDIENCE', 'app-users')],
    'clients' => ['driver' => 'jwt', 'provider' => 'clients', 'audience' => env('JWT_CLIENTS_AUDIENCE', 'app-clients')],
],

Kľúče pre jednotlivé guardy

Každý guard číta tieto voliteľné kľúče z vlastného poľa auth.guards.<name>. Nenastavený alebo prázdny kľúč prevezme globálnu hodnotu, no zadaný a nepoužiteľný — nereťazcový scope, identity, ktorá nie je ClaimsAuthenticatable — vyhodí JwtMisconfigured s názvom kľúča:

Kľúč v auth.guards.<name>Ak chýba, platíTyp
audiencejwt.audienceNeprázdny reťazec; nenastavený alebo prázdny prevezme globálnu hodnotu.
scopejwt.guard.scopeReťazec alebo prípad Scope; nenastavený alebo prázdny prevezme globálnu hodnotu, nereťazcová hodnota vyhodí JwtMisconfigured.
token_versionjwt.guard.token_versionInvokable class-string alebo closure (nepreživie config:cache).
check_denylistjwt.guard.check_denylistBool; rozumie env zápisom true/false, 1/0, on/off a yes/no. Nenastavený alebo prázdny prevezme globálnu hodnotu — prázdna hodnota nikdy neznamená false. Nerozpoznaná hodnota vyhodí JwtMisconfigured — globálnu hodnotu nikdy neprevezme.
identityjwt.guard.identityClass-string triedy ClaimsAuthenticatable; nenastavený alebo prázdny prevezme globálnu hodnotu, čokoľvek iné vyhodí JwtMisconfigured. Ak chýba na oboch úrovniach, TokenUser.

Vydávanie a čítanie pre konkrétny guard

Vydajte token pre konkrétny guard, overte ho a čítajte jeho nastavenia cez Jwt::guard($name):

$clients = Jwt::guard('clients');

$clients->mintAccessToken(AccessTokenRequest::for($client->id)); // aud = 'app-clients'
$clients->mint((string) $client->id, 'access', ttl: 900);        // any scope, for the guard's audience
$clients->verify($jwt);      // a users token fails here (ClaimMismatch)
$clients->audience();        // 'app-clients' — auth.guards.clients.audience, else jwt.audience
$clients->settings();        // JwtGuardSettings: guard, audience, scope, checkDenylist, identity, tokenVersion
$clients->claims();          // that guard's verified claims, or null — never another guard's

Jwt::guard() vyhodí JwtMisconfigured pre guard, ktorý nie je jwt guard, a mintAccessToken() odmietne request, ktorý už uvádza iné audience, namiesto toho, aby ho potichu presmeroval. jwt.audience zostáva povinné — je to predvolená hodnota pre každý guard bez vlastného audience. Token vydaný pre audience jedného guardu dostane na každom inom guarde 401.

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.