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

Open source

Two-Factor for Laravel

Inštalácia
composer require roundly-consulting/two-factor-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Natívne dvojfaktorové overovanie pre Laravel postavené na štandarde TOTP podľa RFC 6238, ktorému rozumie každá autentifikačná aplikácia. Vygeneruje tajný kľúč a provisioning URI otpauth://, potvrdí aktiváciu, overuje prihlasovacie kódy porovnaním v konštantnom čase s atomickou ochranou proti opakovaniu a vydá jednorazové záložné kódy pre prípad straty telefónu — všetko cez TwoFactor::for($user). Tajné kľúče sú v databáze šifrované, záložné kódy hašované a obmedzenie pokusov pre každý účet je predvolene zapnuté. Licencia MIT a minimum závislostí: výpočty TOTP zabezpečuje náš vlastný crypto-for-laravel — v bezpečnostnej ceste nie je žiadna externá kryptografická ani QR knižnica.

Čo získate

Riadená aktivácia

Spustenie vráti tajný kľúč, URI otpauth:// a záložné kódy práve raz; 2FA sa zapne až po potvrdení prvým kódom.

Overovanie odolné voči opakovaniu

Porovnanie v konštantnom čase a atomické zabratie časového kroku — zachytený kód sa nedá použiť dvakrát, ani pri dvoch súbežných požiadavkách.

Jednorazové záložné kódy

Predvolene hašované, spotrebované pod zámkom riadku a každý pokus vráti, koľko kódov používateľovi zostáva.

Vstavaná ochrana proti hádaniu

Predvolene päť pokusov za minútu na účet, každý započítaný ešte pred overením — s typovanou výnimkou, udalosťou a vypnutím jedným riadkom.

Šifrované a skryté

Tajný kľúč je šifrovaný vaším APP_KEY a citlivé stĺpce sa nikdy neobjavia v toArray() ani v JSON odpovedi.

Kompatibilné so štandardom

Predvolený profil RFC 6238 — SHA1, 6 číslic, 30 sekúnd — takže kľúče z inej knižnice generujú tie isté kódy a nikto nemusí 2FA aktivovať znova; uložené stĺpce sa raz prešifrujú.

Fasáda, DI alebo akcie

TwoFactor::for($user), vložený TwoFactorService alebo jedna trieda akcie — a TwoFactor::fake() vo vašich testoch zaznamená každé volanie.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie migrácie, ktorá pridá štyri nullable stĺpce, a voliteľne publikovanie konfigurácie.

Konfigurácia

Všetky kľúče config/two-factor.php s predvolenými hodnotami — TOTP parametre, vydavateľ, záložné kódy, limiter, replay guard a stĺpce.

Nastavenie modelu

Implementujte TwoFactorAuthenticatable, použite trait HasTwoFactorAuthentication a rozbaľte twoFactorCasts() do castov modelu.

Fasáda TwoFactor

Jeden vstupný bod: TwoFactor::for($user) na aktiváciu, overenie pri prihlásení, stav, záložné kódy a vypnutie, plus ploché TOTP primitíva.

DI a akcie

Namiesto fasády si vložte kontrakt TwoFactorService alebo spustite jednu akciu — ten istý kód a fake platí aj tu.

Aktivácia

Spustite čakajúcu aktiváciu, raz zobrazte tajný kľúč, URI pre QR kód a záložné kódy a potvrďte ju prvým kódom z aplikácie.

Vykreslenie QR kódu

Premeňte provisioning URI otpauth:// na QR kód — na serveri ako SVG cez qr-for-laravel alebo priamo vo frontende.

Overovanie pri prihlásení

Overte kód cez TwoFactor::for($user)->attempt() — najprv TOTP s ochranou proti opakovaniu, potom jednorazový záložný kód.

Záložné kódy

Jednorazové záložné kódy pre stratené zariadenie — vznikajú pri aktivácii, predvolene sa hašujú, spotrebúvajú atomicky a dajú sa obnoviť.

Ochrana proti hádaniu

Obmedzenie pokusov pre každý účet, započítané pred každou kontrolou — predvolene päť za minútu — s výnimkou, udalosťou a možnosťou vypnutia.

Ochrana proti opakovaniu

Každý prijatý kód atomicky zaberie svoj časový krok, takže zachytený kód sa nedá znova použiť — v stĺpci, v cache alebo vo vlastnom guarde.

Metódy traitu a akcie

Celý životný cyklus ako metódy modelu používateľa — skratky nad TwoFactor::for($this), takže ich fake zaznamená a bežia tie isté akcie.

Udalosti

Deväť udalostí pre aktiváciu, overovanie, záložné kódy, opakovanie a blokovanie — každá nesie používateľa, nikdy nie tajný kľúč či kód.

Výnimky

Jedna základná trieda TwoFactorException a sedem typovaných zlyhaní — nesprávny kód, stav aktivácie, limit pokusov, chybná konfigurácia a ďalšie.

Bezpečnostný model

Šifrované tajné kľúče, hašované záložné kódy, porovnanie v konštantnom čase, atomická ochrana proti opakovaniu a kontrolovaná konfigurácia.

Prechod z inej TOTP knižnice

Kľúče z akejkoľvek RFC 6238 knižnice generujú tie isté kódy, nikto 2FA neaktivuje znova — stĺpce stačí raz prešifrovať. Vrátane prechodu z Fortify.

Testovanie

TwoFactor::fake() nasadí programovateľného dvojníka bez kryptografie, ktorý zaznamená každé volanie — alebo testujte skutočné kódy pri zmrazenom čase.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13 a nastavený APP_KEY — s našimi balíkmi crypto, enums a package-toolkit ako závislosťami.

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.