laravel 5.1中每个控制器中每个请求的身份验证


Authentication for each Request in each Controller in laravel 5.1

基本控制器

class MyBaseController extends Controller {
    public function __construct()
    {
       if (Auth::check()) {
            // The user is logged in...
       }
       else {
            //Redirect to login page
       }
    }   
}

具有数据库调用功能的控制器,仅对登录用户可用

class ChildController extends MyBaseController {
    public function __construct() 
    {
        parent::__construct();
    }   
}

我需要什么

我想检查每个请求是否由经过身份验证的用户发出?

问题:

我的方法正确吗?还是检查对该控制器的调用是否由经过身份验证的用户进行的最佳实践?

最好使用中间件。

您可以简单地定义这样一个路由组,然后添加一个中间件。

Route::group([
    'middleware' => 'auth',
], function() {
    // Your routes here...
});

您差不多到了,您需要使用中间件的概念。有一个用于基于会话的身份验证的内置中间件,简称为"auth"。

//in your controller :
public function __construct() {
   $this->middleware('auth');
}

您可以在文档

中了解更多关于中间件和控制器的信息