Inštalácia
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 migrateMigrá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 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.