Я пытаюсь реализовать проверку электронной почты в Laravel 5.7. Я реализовал MustVerifyEmail на модели User.
class User extends Authenticatable implements MustVerifyEmail
{
}
Но после регистрации у меня появилась эта ошибка Route [verification.verify] not defined.
Что мне в этом не хватает? Пожалуйста, руководство?






Вам не хватает Auth::routes(['verify' => true]) в Routes\Web.php.
Я предлагаю посмотреть это видео, где подробно объясняется, как работает проверка электронной почты в Laravel 5.7.
https://thewikihow.com/video_dbmox3tgI2k
Laravel включает класс Auth\VerificationController, который содержит необходимую логику для отправки проверочных ссылок и проверки электронных писем. Чтобы зарегистрировать необходимые маршруты для этого контроллера, передайте опцию verify методу Auth::routes:
Auth::routes(['verify' => true]);
Вы можете прочитать больше здесь: https://laravel.com/docs/5.7/verification
В файл routes/web.php добавьте следующий фрагмент кода:
Auth::routes(['verify' => true]);
Ссылка: https://laravel.com/docs/5.7/verification#verification-routing
В routes / web.php убедитесь, что
Auth::routes(['verify' => true]);
Затем запустите:
php artisan route:cache
для очистки кешированных маршрутизируемых и обновления входящих изменений
Вы можете удалить промежуточное ПО 'проверено', например:
<?php
Route::middleware(['auth', 'verified'])
->group(function(){
...
});
?>
Попробуйте, должно решить проблему
Запустить:
php artisan optimize:clear
Это очистит ваш кеш.
Что происходит на самом деле:
Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
(['auth:sanctum', 'verified']
при передаче двух аргументов laravel: один - аутентификации, а другой - проверки почты. Он говорит: он аутентифицирован. ? и проверено ? ok ответ: ответьте, что пользователь в таблице: User email_verified_at не зарегистрирован на дату активации электронной почты, то есть он не сообщил мне, что адрес электронной почты существует. ps передает исключение, потому что есть страница, которую вы должны активировать в ответ на это ... то есть в ответ на это ... Ваш адрес электронной почты не подтвержден, даже если страница создана либо в vue на blade-сервере, либо в limewire в папке auth.
в App \ Models \ User search
// use Illuminate\Contracts\Auth\MustVerifyEmail;
активный:
use Illuminate\Contracts\Auth\MustVerifyEmail;
а орудия
class User extends Authenticatable implements MustVerifyEmail
сейчас многого не хватает .. Проверяем, что ядро активно по следующим параметрам:
в маршруте App \ Http \ Kernel.php
// 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
изменение:
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
в папке Config: config \ fortify.php это:
// Features::emailVerification(),
Это
Features::emailVerification(),
И самое главное в этом аду аутентификации ... маршруты: Вы можете выбрать разные типы маршрутов ... но один в зависимости от ваших ресурсов или проекта.
базовый:
Route::middleware(['auth:sanctum'])->get('/dashboard', function () {
return Inertia::render('Dashboard');
})->middleware('verified')->name('dashboard');
Route::middleware(['auth:sanctum','verified'])->get('/dashboard', function () {
return Inertia::render('Dashboard');
})->name('dashboard');
немного адреналина:
Route::group(["middleware" => ['auth:sanctum','verified']], function () {
Route::get('/dashboard', function () {
return Inertia::render('Dashboard');
// return "hola william";
})->name('dashboard');
//aca puedes segir colocando las paginas o recursos que quieres cargar mientras en usuario este autenticado y verificado...
});
откуда ошибка: Маршрут [verify.verify] не определен
этот маршрут / файл .. поставщик \ laravel \ framework \ src \ lighting \ Auth \ Middleware \ EnsureEmailsVerified.php
функция:
public function handle($request, Closure $next, $redirectToRoute = null)
{
if (! $request->user() ||
($request->user() instanceof MustVerifyEmail &&
! $request->user()->hasVerifiedEmail())) {
return $request->expectsJson()
? abort(403, 'Your email address is not verified.')
: Redirect::guest(URL::route($redirectToRoute ?: 'verification.notice'));
}
return $next($request);
}
linea:
: Redirect::guest(URL::route($redirectToRoute ?: 'verification.notice'));
Спасибо и успехов в ваших проектах с laravel. и извините, если я что-то не так написал.
документы, кажется, предполагают, что читатель уже знает, где разместить
Auth::routes(['verify' => true]). laravel.com/docs/5.7/verification#verification-routing