如果用户未在Laravel中确认电子邮件,则重定向到页面

时间:2017-08-30 07:20:59

标签: php laravel

如果用户尚未确认他们的电子邮件,我想将用户重定向到该页面。

我可以通过在中间件上执行此操作轻松实现:

 if(Auth::user()->confirmed == 0)
    {
         return redirect("somewhereelse");
    }

但是我有15个中间件,我不想用这个代码弄乱他们。

有没有办法将这样的规则应用到用户需要登录的整个页面而不将其添加到每个中间件?

1 个答案:

答案 0 :(得分:2)

我可以建议你两种方式:

编辑您的' RedirectIfAuthenticated',如果您有,

if(Auth::guard($guard)->check()) {
    if(Auth::user()->confirmed == 0){
        return redirect("somewhereelse");
    }
    return redirect('authenticatedarea');
}

您可以检查用户是否已登录,如果是,则可以检查他是否使用相同的中间件验证了电子邮件。

否则,您可以使用此检查创建另一个中间件。

我建议使用第一个'因为您可以在一个中间件中包含2个简单的检查...最后,如果需要,您可以稍后拆分它们。