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

Autorizácia z claimov

Nastavte authorize_from_claims na true (JWT_AUTHORIZE_FROM_CLAIMS=true) a oprávnenia uvedené v claime permissions sa udelia cez hook Gate::before:

JWT_AUTHORIZE_FROM_CLAIMS=true
// Issuer: bake the abilities into the token.
Jwt::mintAccessToken(
    AccessTokenRequest::for($user->id)->permissions('posts.view', 'posts.edit')
);

// Any verifying service, claims mode:
if ($request->user()->can('posts.edit')) {
    // allowed straight from the token's permissions claim
}

Route::middleware(['auth:api', 'can:posts.edit'])->post('/posts', StorePostController::class);

Ak oprávnenie nenájde, hook vráti null, nie false, takže vaše vlastné gates a policies sa vyhodnotia ďalej.

Ktoré identity sa zapájajú

  • Claims režim — používateľ je TokenUser (alebo akákoľvek identita, ktorá implementuje RoundlyConsulting\Jwt\UserTokens\Contracts\ChecksPermissions, pozrite Rozšírenie) a odpovedá zo svojich claimov: can() pre neho funguje všade, kde sa kontroluje.
  • Provider režim — používateľ je váš Eloquent model, preto hook prečíta claim permissions z tokenu, ktorý ho prihlásil na aktívnom guarde requestu (na tom, ktorý vybral auth:<guard>, alebo Auth::shouldUse()).

V provider režime udelí oprávnenie len presne tejto inštancii používateľa: kópia toho istého používateľa načítaná samostatne (Gate::forUser(User::find($id))), používateľ nastavený bez tokenu (actingAs($user, 'api')) ani claim permissions so zlým typom z tokenu nič nezískajú.

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.