0

我将 laravel 5.2 与 entrust/zizaco 一起使用。当用户进行身份验证时,他们具有角色管理员,但是当我将 dd(1) 放入我的 app_user 角色中间件时,请求会进入它!该请求还输入 admin 和 business_owner 角色中间件。即使用户注销,之后他们的每个请求都会通过 auth 中间件!

Route::group(['middleware' => 'auth'], function () {
    Route::group(['middleware' => ['role:admin']], function (){
       // Routes go here
    });

    Route::group(['middleware' => ['role:app_user']], function (){
        // Routes go here
    });

    Route::group(['middleware' => ['role:business_owner']], function (){
       // Routes go here
    });
});
4

1 回答 1

0

是的,请求应该输入身份验证中间件,您可以在中间件中编写代码。这是 laravel 内置的用于验证用户的中间件:

public function handle($request, Closure $next)
    {
        if ($this->auth->guest()) { // if user isn't authenticated
            if ($request->ajax()) { // if request is ajax
                return response('Unauthorized.', 401); // return 401 res
            } else {
                return redirect()->guest('login'); // else redirect login page
            }
        }
        return $next($request); // return next res(e.g dashboard) if user is authenticated
    }
于 2016-10-21T09:08:26.760 回答