Laravel使用已验证的中间件保护路由不起作用



我已经按照本教程实现了Laravel-5.8电子邮件验证:https://laravel.com/docs/5.8/verification.我正试图保护一些未经验证的电子邮件用户的路由,如下所示:

Route::group(['middleware' => ['verified']], function () {
Route::get('/dashboard', 'DashboardController@dashboard')->name('dashboard');
Route::get('/backend', 'DashboardController@backend')->name('backend');
});

但我可以访问dashboard,而无需验证我的电子邮件地址。

如何在不验证电子邮件的情况下阻止此访问?

这通常是一件非常简单的事情,你的应用程序中可能会出现一个小错误,所以这里有一个清单可以快速查看。

  1. 您正在测试的用户在数据库中是否有空的email_verified_at字段?

  2. 您是否在用户模型中添加了implements MustVerifyEmail

class User extends Authenticatable implements MustVerifyEmail

  1. 您是否在routes/web.php?中将verify设置为true

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

您已经将中间件正确地添加到路由中,所以这不是问题所在。

除此之外,我们没有太多信息可供参考。

最新更新