Подтверждение email в Laravel Breeze
Иногда нужно убедиться, что email настоящий. Breeze даёт готовый поток подтверждения.
У модели User для этого
подключают интерфейс
MustVerifyEmail:
<?php
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}
?>
Пока пользователь не перешёл
по ссылке из письма, middleware
verified не пустит его
на dashboard:
<?php
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
?>
Маршруты verification лежат
в группе auth файла
auth.php:
- страница «подтвердите почту»
- переход по подписанной ссылке
- повторная отправка письма
<?php
Route::get('verify-email', EmailVerificationPromptController::class)
->name('verification.notice');
Route::get('verify-email/{id}/{hash}', VerifyEmailController::class)
->middleware(['signed', 'throttle:6,1'])
->name('verification.verify');
Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
->middleware('throttle:6,1')
->name('verification.send');
?>
Если MustVerifyEmail
не подключён, verified
обычно не мешает - но цепочку
в коде Breeze всё равно полезно
увидеть.
Проверьте, реализует ли
ваш User
MustVerifyEmail.
Найдите в auth.php
маршруты с именами
verification.*.