douba6361 2019-07-27 03:15
浏览 138
已采纳

如何在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');
  • 写回答

1条回答 默认 最新

  • dounianji7883 2019-07-27 03:39
    关注

    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);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路