Проверка электронной почты в laravel 5.7 для администратора
Я хочу реализовать, должен проверить в административных маршрутах, у меня есть admin guard и все маршруты, связанные с admin, как я могу добиться этой функциональности для admin guard в Laravel 5.7
0 ответов
Вот как я заставил его работать на меня.
- Создайте собственный класс промежуточного программного обеспечения и назовите его как хотите, в моем случае я назвал его 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
не работает, поэтому я пошел с моделью администратора.
Зарегистрируйте его в своем ядре, как всегда,
'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