Проверка электронной почты в laravel 5.7 для администратора

Я хочу реализовать, должен проверить в административных маршрутах, у меня есть admin guard и все маршруты, связанные с admin, как я могу добиться этой функциональности для admin guard в Laravel 5.7

0 ответов

Вот как я заставил его работать на меня.

  1. Создайте собственный класс промежуточного программного обеспечения и назовите его как хотите, в моем случае я назвал его AdminEmailIsVerified
    класс AdminEmailIsVerified extends EnsureEmailIsVerified
    {
      дескриптор публичной функции ($request, Closure $next)
      {
         if (! $request->user('admin') ||
            ($request->user('admin') instanceof Admin &&//MustVerifyEmail &&! $request->user('admin')->hasVerifiedEmail())) {
            вернуть $request->expectedJson()? прервать (403, 'Ваш адрес электронной почты не подтвержден.'): Redirect::route('admin.verification.notice');
          }
          вернуть $ следующий ($ запрос);
        }
    }

Пожалуйста, обратите внимание, что instance of MustVerifyEmail не работает, поэтому я пошел с моделью администратора.

  1. Зарегистрируйте его в своем ядре, как всегда,

    'admin.verified' => \ App \ Http \ Middleware \ AdminEmailIsVerified:: class,

    в $ routMiddlewareGroup

    надеюсь, это поможет

Панель администратора - подтверждение по электронной почте

В laravel6 мы можем сделать это, передав имя маршрута в параметре промежуточного программного обеспечения. Например:

Route::middleware('verified:admin.verification.notice')->get('/', 'AdminController@home')->name('home');

Здесь "dashboard.verification.notice" - это имя маршрута проверки электронной почты для моего администратора.

================================================== =================

Пояснение:

Взгляните на метод "handle" промежуточного программного обеспечения EnsureEmailIsVerified.

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::route($redirectToRoute ?: 'verification.notice');
    }

    return $next($request);
}

3-й параметр принимает имя $redirectToRoute

Другие вопросы по тегам