admin guard laravel 5.7 中的电子邮件验证
Email Verification in laravel 5.7 for admin guard
我想在管理员路由中实现必须验证,我有管理员守卫和所有与管理员相关的路由,我如何在 Laravel 5.7
中为管理员守卫实现此功能
这就是我让它为我工作的方式。
- 创建自定义中间件 class 并根据需要命名,在我的例子中,我将其命名为 AdminEmailIsVerified
class AdminEmailIsVerified extends EnsureEmailIsVerified
{
public function handle($request, Closure $next)
{
if (! $request->user('admin') ||
($request->user('admin') instanceof Admin &&//MustVerifyEmail &&
! $request->user('admin')->hasVerifiedEmail())) {
return $request->expectsJson()
? abort(403, 'Your email address is not verified.')
: Redirect::route('admin.verification.notice');
}
return $next($request);
}
}
请注意,instance of MustVerifyEmail
不起作用,这就是我使用 Admin 模型的原因。
像往常一样在你的内核中注册它,
'admin.verified' => \App\Http\Middleware\AdminEmailIsVerified::class,
在$routesMiddlewareGroup
中
希望对您有所帮助
Admin Dashboard - Email Verification
在laravel6、laravel7中,我们可以通过在中间件参数中传递路由名称来实现。例如:
Route::middleware('verified:admin.verification.notice')->get('/', 'AdminController@home')->name('home');
此处“dashboard.verification.notice”是我的管理员验证电子邮件路由的名称。
============================================= ======================
解释:
查看“EnsureEmailIsVerified”中间件的“handle”方法。
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 名称
我想在管理员路由中实现必须验证,我有管理员守卫和所有与管理员相关的路由,我如何在 Laravel 5.7
中为管理员守卫实现此功能这就是我让它为我工作的方式。
- 创建自定义中间件 class 并根据需要命名,在我的例子中,我将其命名为 AdminEmailIsVerified
class AdminEmailIsVerified extends EnsureEmailIsVerified { public function handle($request, Closure $next) { if (! $request->user('admin') || ($request->user('admin') instanceof Admin &&//MustVerifyEmail && ! $request->user('admin')->hasVerifiedEmail())) { return $request->expectsJson() ? abort(403, 'Your email address is not verified.') : Redirect::route('admin.verification.notice'); } return $next($request); } }
请注意,instance of MustVerifyEmail
不起作用,这就是我使用 Admin 模型的原因。
像往常一样在你的内核中注册它,
'admin.verified' => \App\Http\Middleware\AdminEmailIsVerified::class,
在$routesMiddlewareGroup
中希望对您有所帮助
Admin Dashboard - Email Verification
在laravel6、laravel7中,我们可以通过在中间件参数中传递路由名称来实现。例如:
Route::middleware('verified:admin.verification.notice')->get('/', 'AdminController@home')->name('home');
此处“dashboard.verification.notice”是我的管理员验证电子邮件路由的名称。
============================================= ======================
解释:
查看“EnsureEmailIsVerified”中间件的“handle”方法。
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 名称