如何在Laravel 5.8上使用“中间件:('已验证')”时允许访客访问页面?

I want the guest to access Home and Shop page and still verifies email when a user wants to register.

Route::get('/home', 'HomeController@index')->name('home')->middleware('verified');

The EnsureEmailIsVerified middleware requires the user to be logged in to access any pages protected with it.

You can see this check in the code for the middleware

if (!$request->user() ||
    ($request->user() instanceof MustVerifyEmail &&
        !$request->user()->hasVerifiedEmail())) {
    // reject
}

If you want to allow guests to access the page, and still require users to be activated you will need to create a custom middleware.

php artisan make:middleware GuestOrActivated

Then, for the handle function:

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);
}