Laravel Auth注销恶意用户

时间:2014-11-06 23:23:46

标签: authentication laravel

我正在实施禁止系统。我有一个管理员视图,管理员可以禁止用户。如果管理员在那一刻禁止他,我想注销一个用户。像Auth::logout($user)这样的东西。那可能吗??或者我是否必须在我的所有路由中添加过滤器以检查是否已禁止登录的用户。

1 个答案:

答案 0 :(得分:0)

过滤器是最佳选择。解决这个问题简单易行,请参阅下面的示例。

如果用户在任何时候被禁止它会在他/她的下一个请求中注销用户,您可以使用会话Flash消息重定向用户,您的登录代码将按原样运行。

Route::filter('auth', function()
{
    if (Auth::guest())
    {
         if (Request::ajax())
         {
             return Response::make('Unauthorized', 401);
         }
         else
         {
            return Redirect::guest('login');
         }
 }
else
{
    // If the user is banned, immediately log out.
    if(Auth::check() && !Auth::user()->bannedFlag)
    {
        Auth::logout();
        Session::flash('message','Your account is banned, please contact your administrator             to active your account');

        // redirect to login page
        return Redirect::to('/');
    }
}
});

并且您的路线使用组路线

Route::group(array('before' => 'auth'), function()
{
        //use your routes 
});