Подтверждение электронной почты Laravel, перенаправляющее на страницу входа - PullRequest
0 голосов
/ 26 апреля 2019

У меня проблема с проверкой электронной почты Laravel 5.7.

После использования электронной почты проверки Laravel, я вынужден перейти на страницу входа, если я не вошел в систему.

Вот что нам нужно: Мы включаем код для проверки электронной почты пользователей. Поэтому, когда кто-то регистрируется, мы хотим проверить электронную почту пользователя. Мы хотим, чтобы пользователь зарегистрировался на веб-сайте, его попросили подтвердить адрес электронной почты, и он не может ничего сделать, пока не будет подтвержден - что для меня нормально.

Наша проблема в том, что если на наш веб-сайт заходит новый пользователь (не зарегистрирован), наш веб-сайт также заставит всех пользователей перейти на страницу входа.

Обычный пользователь, который не зарегистрирован, также получает доступ к странице входа и вынуждает подтвердить или войти.

Хотя мы хотим, чтобы единственный зарегистрированный пользователь должен был подтвердить. Который работает.

Все обычные пользователи, которые не подписаны, могут легко пользоваться сайтом. Где в данный момент они собираются войти на страницу

Что я сделал до сих пор Добавлен следующий код

class User extends Authenticatable implements MustVerifyEmail

Auth::routes(['verify' => true]);

Route::get('profile', function () { })->middleware('verified');

После проверки писем

protected $redirectTo = '/dashboard';

Работает нормально, но,

Что мне нужно, так это то, что я не хочу заставлять пользователей проверять электронную почту, потому что это блокирует пользователю доступ к домашней странице моего сайта.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Проблема в том, что вам нужно указать, какие страницы будут использовать промежуточное программное обеспечение для аутентификации.Чтобы исключить ваше приветствие.

В вашем файле контроллера.

public function __construct()
{
    $this->middleware('auth')->except('welcome');
}

public function home(){
    return view('welcome');
}

Я использую «приветственное» представление, потому что я считаю, что вы не меняете код установки по умолчанию Laravel, вы должныбудьте осторожны, поскольку представление «home» - это страница по умолчанию, которую laravel показывает после входа в систему. Если вы удалите уровень аутентификации этой страницы, любой пользователь сможет получить доступ к вашей системе.Вы должны изменить код этой страницы или создать другое представление.

В вашем файле web.php

Route::get('/', 'HomeController@home');

Документы Laravel - Промежуточное программное обеспечение контроллера

0 голосов
/ 26 апреля 2019

попробуйте добавить, кроме метода и проверьте URL дома

public function __construct()
{
  $this->middleware(['auth', 'verified'])->except('home');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...