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); // boolPrehľad metód
| Metóda | Vracia | Čo robí |
|---|---|---|
for($owner) | PendingIssue | Plynulý builder vydania; ->issue() zavolá issue(). |
issue($owner, IssueContext $context) | NewRefreshToken | Vydá token; plaintext dostanete raz. |
redeem($plain, ?string $ownerType = null) | ?RedemptionResult | Atomicky uplatní token; každé zlyhanie je null. |
rotate($plain, ?RotationContext $context = null) | ?RotationResult | Uplatnenie a vydanie náhrady v tej istej rodine jedným volaním. |
revoke($plain, $reason = Logout) | bool | Odhlásenie s tokenom v ruke; true, ak ukončil živú reláciu. Použitý token ukončí reláciu, do ktorej bol rotovaný. |
sessions($owner) | OwnerSessions | Relácie jedného vlastníka — výpis, vyhľadanie a odvolanie podľa ID rodiny. |
session($row) | SessionHandle | Jeden riadok (model alebo jeho kľúč) — obohatenie alebo odvolanie. |
prune(?int $days = null) | int | Natrvalo zmaže mŕtve riadky; vráti ich počet. |
fake() | RefreshTokensFake | Nasadí zaznamenávajúci fake — pozrite Testovanie. |
Objekty sessions() a session()
| Metóda | Vracia | Poznámka |
|---|---|---|
sessions($owner)->all() | Collection<RefreshToken> | Aktívne riadky, od najnovšieho. |
sessions($owner)->find($familyId) | ?RefreshToken | Aktívny riadok danej rodiny; null pri chybnom ID alebo rodine iného vlastníka. |
sessions($owner)->revoke($familyId, $reason) | bool | Odvolá všetky aktívne riadky rodiny (predvolene Logout); false, ak nebolo nič aktívne. |
sessions($owner)->revokeAllExcept($keepFamilyId, $reason) | int | Ponechá jednu reláciu podľa ID rodiny (predvolene LogoutAll); null alebo neznáme ID odvolá všetko. |
sessions($owner)->revokeOthers($currentAccessReference, $reason) | int | Ponechá reláciu s daným odkazom na prístupový token (predvolene LogoutAll); null odvolá všetko. |
sessions($owner)->revokeAll($reason) | int | Odvolá všetky relácie (predvolene LogoutAll). |
session($row)->enrich($device, $location) | void | Zapíše údaje o zariadení a polohe dodané aplikáciou do jedného riadku (model alebo jeho kľúč). |
session($row)->revoke($reason) | bool | Odvolá 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 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.