在Laravel中不仅仅需要用户+密码保护

时间:2014-08-20 15:57:53

标签: php laravel

我使用的是标准的身份验证方法,该方法可以很好地保护未登录的用户#34; / my"控制器。这是我的代码:

Route::group(array('before' => 'auth'), function(){
    Route::get('my', array('as' => 'my', 'uses' => 'MyController@getIndex'));
});

但是,现在让我们说我想确保他们已经登录并且已经激活设置为1而不是0.如何将该规则添加到此代码中以使控制器受到两个来宾的保护并登录没有设置为有效的用户?

1 个答案:

答案 0 :(得分:4)

假设您不想修改auth过滤器,只需添加一个新过滤器

Route::filter('authActive', function()
{
    if (!Auth::user()->active) return Redirect::guest('login');
});

在您的标准before(由管道分隔)之后,将过滤器添加到您的路线组auth

Route::group(array('before' => 'auth|authActive'), function(){
    Route::get('my', array('as' => 'my', 'uses' => 'MyController@getIndex'));
});

为此设置两个单独的过滤器的好处是,如果它通过auth而不是authActive,您可以将它们发送到不同的视图,并可选择重新发送激活电子邮件