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

Overovanie tokenov

Každá aplikácia s verejným kľúčom overuje používateľské tokeny offline — bez dotazu do databázy a bez volania vydavateľa:

$claims = Jwt::verify($jwt);   // or app(UserTokenVerifier::class)->verify($jwt)
$claims->string('sub');
$claims->list('permissions');

Jwt::verify($jwt, 'app-clients');      // pin another audience for this call
Jwt::guard('clients')->verify($jwt);   // …or the audience of a configured guard

verify() skontroluje podpis, exp, nbf a iat v rámci nastaveného leeway a pripne iss a aud. Kontrola scope, denylistu a verzie tokenu patrí guardu, nie verify(). Explicitne prázdne audience vyhodí JwtMisconfigured.

Typované čítanie claimov

Claims je nemenná kolekcia, ktorá vznikne až po úspešnej kontrole podpisu a času:

$claims->has('org');            // bool
$claims->get('org');            // mixed, null when absent
$claims->require('org');        // mixed, throws ClaimMismatch when absent
$claims->string('sub');         // string
$claims->int('exp');            // int
$claims->list('permissions');   // list<string>
$claims->all();                 // array<string, mixed>
MetódaVraciaSprávanie
has($name)boolČi je claim prítomný.
get($name)mixedHodnota alebo null, ak chýba.
require($name)mixedAk chýba, vyhodí ClaimMismatch.
string($name)stringAk chýba alebo nie je reťazec, vyhodí ClaimMismatch.
int($name)intPrijme celé floaty ako 1.0; pri desatinných či nečíselných hodnotách vyhodí výnimku.
list($name)list<string>Vyhodí výnimku, ak claim nie je zoznam reťazcov.
sessionId()?stringClaim sid alebo null, ak chýba.
authMethods()list<string>Claim amr alebo [], ak chýba.
authTime()?intClaim auth_time alebo null, ak chýba.
all()arrayCelá mapa claimov.

Ošetrenie zlyhaní

Neplatný token vyhodí podtriedu JwtException. Vydanie claimov, ktoré sa nedajú zakódovať do JSON, vyhodí UnencodableClaims — tiež JwtException — takže jeden catch pokryje vydávanie aj overovanie:

use RoundlyConsulting\Jwt\Facades\Jwt;
use RoundlyConsulting\Jwt\Jose\Exceptions\JwtException;
use RoundlyConsulting\Jwt\Jose\Exceptions\TokenExpired;

try {
    $claims = Jwt::verify($jwt);
} catch (TokenExpired $e) {
    // Prompt a re-login / refresh flow.
} catch (JwtException $e) {
    // Any other token failure: 401.
}

Neúspešné Jwt::verify() pred opätovným vyhodením výnimky spustí TokenVerificationFailed. Celú hierarchiu nájdete v časti Výnimky.

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.