После завершения установки для включения новой встроенной проверки электронной почты все работает хорошо (отправка электронной почты после регистрации и нажатие на активацию активируют учетную запись).
Но я столкнулся со случаем, когда пользовательнеобходимо войти в систему, чтобы процесс проверки включился.Это означает, что если пользователь не вошел в систему до использования ссылки для подтверждения, он будет перенаправлен на страницу входа, а затем ему будет представлена страница /resources/view/auth/verify.blade.php
.
Я обращаюсь к сообществу, чтобы узнать,это намеренно, баг или я что-то не так делаю?Кто-то работал в такой же ситуации?
У создаваемого мною сайта есть публичный доступ к большинству страниц, но ограничен некоторыми (на данный момент пользовательским порталом).Я настроил routes/web.php
следующим образом:
// Authentication
Auth::routes(['verify' => true]);
Route::group(['middleware' => ['auth', 'verified'], 'as' => 'portal.', 'prefix' => '/portal'], function () {
Route::get('/', 'PortalController@index');
Route::get('/profile', 'PortalController@index')->name('profile');
Route::get('/orders', 'PortalController@index')->name('orders');
});
Отслеживая процесс проверки, я смог обнаружить, что процесс принудительно выполняет вход в конструктор VerificationController
через промежуточное ПО, показанное ниже..
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
При комментировании первой строки или добавлении ->except('verify')
страница входа не отображается, но в методе Traits VerifiesEmails
выдается ошибка. Проверьте, как показано ниже, поскольку пользователь явноне зарегистрировано ($request->user()
равно нулю).
public function verify(Request $request)
{
if ($request->route('id') == $request->user()->getKey() &&
$request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return redirect($this->redirectPath())->with('verified', true);
}
Мой вопрос, есть ли способ заставить его работать без предварительного входа в систему, или это способ реализации процесса проверкив 5,7?... или что я делаю не так?