Laravel не может проверить электронную почту из-за того, что пользователь не прошел проверку подлинности

#php #laravel

Вопрос:

TLDR; Я использую Valet и mailhog для тестирования электронной почты. Это всего лишь базовая форма регистрации. Пользователь не проходит проверку подлинности, даже если по пути регистрации он вошел в систему сразу после создания экземпляра пользователя.

В ПОСТ /регистровом контроллере

 Auth::login($user= User::create([...])); <-- here we login the user right after the user created.
event(new Registered($user));
 

Затем, когда пользователь нажимает на проверочное электронное письмо, это произошло:

 Route::get('email/verify/{id}/{hash}',function (EmailVerificationRequest $request) {
 // user is not authenticated, thus redirected again to login route.
 // this happened again and again when we click the link from email verification,
// even though we are "logged in" in the session
})->middleware(['auth','signed',...]);
 

Кто-нибудь может помочь с этим? Это версия Laravel: 8.32.1 и версия PHP: 8.0.0
Спасибо

Ответ №1:

Вы убедились, что он действительно создает пользователя, когда вы пытаетесь его аутентифицировать? Вы должны проверить наличие null перед попыткой входа в систему. Как только вы сможете убедиться, что запись была создана и сохранена, только после этого вы должны попытаться войти в систему.