TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5986 1.76K
🔐 How to: добавить двухфакторную аутентификацию (2FA) в Laravel Nova

Админка — место, где безопасность особенно важна. Даже если Laravel Nova уже неплохо защищена, базовых мер (типа IP-фильтров) может быть недостаточно. Простое и надёжное решение — двухфакторная аутентификация.

Сегодня разберём, как добавить её в Nova буквально за 5 минут с помощью пакета Nova Two Factor.

⚙️ 1. Установка

Для Nova 5 — просто ставим пакет:

composer require visanduma/nova-two-factor:~3



Затем публикуем конфигурацию:

php artisan vendor:publish --provider="Visanduma\NovaTwoFactor\ToolServiceProvider"


🧩 2. Подключаем трейт к модели администратора
use Visanduma\NovaTwoFactor\ProtectWith2FA;

class Admin extends Authenticatable
{
use ProtectWith2FA;
}


Теперь именно эта модель будет защищена 2FA.

🔒 3. Добавляем middleware в Nova

Откройте config/nova.php и добавьте посредник пакета в список middleware:
'middleware' => [
...,
\Visanduma\NovaTwoFactor\Http\Middleware\TwoFa::class,
],


🧰 4. Регистрируем инструмент в NovaServiceProvider
public function tools()
{
return [
...,
new \Visanduma\NovaTwoFactor\NovaTwoFactor(),
];
}


После этого в меню появится пункт Two Factor Auth, где админ сможет включить 2FA.

🧭 5. Кастомное меню? Добавьте пункт вручную
Nova::mainMenu(function (Request $request) {
return [
MenuSection::make('Two Factor Auth', [
MenuItem::link('2FA', 'nova-two-factor'),
])->icon(config('nova-two-factor.menu_icon')),
];
});


Теперь 2FA появится и в вашем пользовательском меню.

💡 Совет


Если вы хотите убрать ограничение по IP, просто измените gate в NovaServiceProvider:
protected function gate()
{
Gate::define('viewNova', fn (\App\Models\Admin $user) => true);
}


⚠️ Только не удаляйте gate полностью — Nova этого не простит!

🛡 После включения 2FA при каждом входе администратору нужно будет ввести OTP-код — защита станет заметно прочнее, а доступ под контролем.

Библиотека пхпшника
  • 👍 1
More from @phpproglib
  1. Sep 25, 2026🌞 PHP умеет искать в массиве без foreach В PHP 8.4 появились array_find(), array_find_key…
  2. Sep 24, 2026👍 5 способов встроить AI в Laravel Laravel AI SDK позволяет добавлять AI-функции прямо в…
  3. Sep 23, 2026🛠 Symfony 8.2 научился автоматически генерировать JSON Schema для конфигурации приложения…
  4. Sep 23, 2026🚀 Свежий релиз Laravel 13 с набором улучшений и исправлений ✅ добавлена поддержка valkey:…
  5. Sep 21, 2026⚡️ PHP 8.6 выйдет 19 ноября 2026 года. Сейчас версия находится в beta. Самые заметные изме…
  6. Sep 20, 2026❓ Какие существуют проблемы в многопоточной среде? Основные проблемы многопоточности: 1️⃣…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →