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

Fasáda RefreshTokens

RoundlyConsulting\RefreshTokens\Facades\RefreshTokens (alias RefreshTokens) je odporúčaný vstupný bod. Metódy pre tokeny sú priamo na fasáde; všetko o reláciách jedného vlastníka visí na sessions($owner) a jeden riadok, ktorý už máte, na session($row):

use RoundlyConsulting\RefreshTokens\Facades\RefreshTokens;

RefreshTokens::for($user)->fromRequest($request)->linkedTo($jti)->issue(); // fluent issue
RefreshTokens::issue($user, new IssueContext(/* … */));                    // the same, as a DTO
RefreshTokens::redeem($plain, ownerType: $morph);   // ?RedemptionResult
RefreshTokens::rotate($plain, new RotationContext(/* … */)); // ?RotationResult
RefreshTokens::revoke($plain);                      // bool — logout with the token in hand
RefreshTokens::prune(days: 7);                      // int — force-delete dead rows

RefreshTokens::sessions($user)->all();              // active sessions, newest first
RefreshTokens::sessions($user)->find($familyId);    // ?RefreshToken
RefreshTokens::sessions($user)->revoke($familyId, RevocationReason::Logout); // bool
RefreshTokens::sessions($user)->revokeOthers($currentJti);      // int
RefreshTokens::sessions($user)->revokeAllExcept($keepFamilyId); // int
RefreshTokens::sessions($user)->revokeAll();                    // int

RefreshTokens::session($row)->enrich($device, $location); // row model or its key
RefreshTokens::session($row)->revoke(RevocationReason::Manual); // bool

Prehľad metód

MetódaVraciaČo robí
for($owner)PendingIssuePlynulý builder vydania; ->issue() zavolá issue().
issue($owner, IssueContext $context)NewRefreshTokenVydá token; plaintext dostanete raz.
redeem($plain, ?string $ownerType = null)?RedemptionResultAtomicky uplatní token; každé zlyhanie je null.
rotate($plain, ?RotationContext $context = null)?RotationResultUplatnenie a vydanie náhrady v tej istej rodine jedným volaním.
revoke($plain, $reason = Logout)boolOdhlásenie s tokenom v ruke; true, ak ukončil živú reláciu. Použitý token ukončí reláciu, do ktorej bol rotovaný.
sessions($owner)OwnerSessionsRelácie jedného vlastníka — výpis, vyhľadanie a odvolanie podľa ID rodiny.
session($row)SessionHandleJeden riadok (model alebo jeho kľúč) — obohatenie alebo odvolanie.
prune(?int $days = null)intNatrvalo zmaže mŕtve riadky; vráti ich počet.
fake()RefreshTokensFakeNasadí zaznamenávajúci fake — pozrite Testovanie.

Objekty sessions() a session()

MetódaVraciaPoznámka
sessions($owner)->all()Collection<RefreshToken>Aktívne riadky, od najnovšieho.
sessions($owner)->find($familyId)?RefreshTokenAktívny riadok danej rodiny; null pri chybnom ID alebo rodine iného vlastníka.
sessions($owner)->revoke($familyId, $reason)boolOdvolá všetky aktívne riadky rodiny (predvolene Logout); false, ak nebolo nič aktívne.
sessions($owner)->revokeAllExcept($keepFamilyId, $reason)intPonechá jednu reláciu podľa ID rodiny (predvolene LogoutAll); null alebo neznáme ID odvolá všetko.
sessions($owner)->revokeOthers($currentAccessReference, $reason)intPonechá reláciu s daným odkazom na prístupový token (predvolene LogoutAll); null odvolá všetko.
sessions($owner)->revokeAll($reason)intOdvolá všetky relácie (predvolene LogoutAll).
session($row)->enrich($device, $location)voidZapíše údaje o zariadení a polohe dodané aplikáciou do jedného riadku (model alebo jeho kľúč).
session($row)->revoke($reason)boolOdvolá jeden riadok, ktorý máte k dispozícii (predvolene Manual).

sessions($owner) pracuje len v rozsahu vlastníka — rodina iného vlastníka, aj vlastníka iného typu s rovnakým id, je pre neho neznáma. session() prijíma model RefreshToken, celé číslo alebo reťazcový kľúč; neznámy kľúč vyhodí SessionNotFoundException. Metódy traitu HasRefreshTokens delegujú na toho istého manažéra — pozrite Relácie.

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.