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

Pridajte balík, potom publikujte a spustite migráciu. Service provider aj alias fasády TwoFactor sa načítajú automaticky — bez manuálnej registrácie:

composer require roundly-consulting/two-factor-for-laravel

php artisan vendor:publish --tag="two-factor-migrations"
php artisan migrate

Migrácie sa len publikujú — z balíka sa automaticky nenačítava nič. Migrácia pri publikovaní dostane vlastný časový údaj a opätovné publikovanie prepíše naposledy publikovaný súbor, takže nikdy nevzniknú dve kópie tej istej migrácie.

Len dopredu a bezpečne opakovateľná

Publikovaná migrácia nemá down(), takže migrate:rollback štyri stĺpce ponechá. Opätovné spustenie je bezpečné — pridá len stĺpce, ktoré tabuľka ešte nemá, takže migrate po rollbacku ani migrate:refresh nikdy nezlyhajú na duplicitnom stĺpci. Ak chcete stĺpce odstrániť, urobte to vo vlastnej migrácii:

Schema::table('users', function (Blueprint $table): void { // or your `two-factor.table`
    $table->dropTwoFactorColumns();
});

Čo migrácia pridá

Štyri nullable stĺpce do tabuľky users — alebo do tabuľky určenej kľúčom two-factor.table (TWO_FACTOR_TABLE), ktorý sa číta pri spustení migrácie. Ak píšete vlastnú migráciu, použite Blueprint makro:

Schema::table('users', function (Blueprint $table): void {
    $table->twoFactorColumns(); // secret, recovery_codes, confirmed_at, last_used_timestep
});

Ďalšie tabuľky účtov

Dvojfaktorové overovanie funguje na akomkoľvek Eloquent modeli s traitom — clients, admins, jeden na každý guard. Publikovaná migrácia pokrýva jednu tabuľku; každej ďalšej tabuľke účtov pridajte rovnaké stĺpce vo vlastnej migrácii. Makro dropTwoFactorColumns() ich odstráni:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::table('clients', function (Blueprint $table): void {
            $table->twoFactorColumns();
        });
    }

    public function down(): void
    {
        Schema::table('clients', function (Blueprint $table): void {
            $table->dropTwoFactorColumns();
        });
    }
};

Názvy stĺpcov pochádzajú zo spoločnej mapy two-factor.columns a vstavaný limiter používa ako kľúč triedu modelu aj id, takže používateľ a klient s rovnakým id nikdy nezdieľajú zablokovanie.

Konfigurácia (voliteľná)

Balík funguje bez akejkoľvek konfigurácie — každý kľúč má bezpečnú predvolenú hodnotu. Konfiguráciu publikujte len vtedy, keď ju chcete zmeniť:

php artisan vendor:publish --tag="two-factor-config"

Balík má dva publish tagy: two-factor-migrations a two-factor-config. Ďalej pripravte model používateľa — pozrite Nastavenie modelu.

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.