Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以在laravel控制器文件的功能之外进行授权检查吗?_Php_Laravel_Controller_Authorization - Fatal编程技术网

Php 我可以在laravel控制器文件的功能之外进行授权检查吗?

Php 我可以在laravel控制器文件的功能之外进行授权检查吗?,php,laravel,controller,authorization,Php,Laravel,Controller,Authorization,每次在调用laravel中的函数之前,我都会检查请求ajax链接的人是否已登录。 我必须把这个检查函数放在每个函数中才能使它工作。如果我在函数外写入,它只会打印 请登录以查看此内容是否正常工作 即使我已登录。有没有办法将check函数放在控制器文件的开头,这样我就不必每次都在函数中写入它 function index() if(!\Auth::check()) return response()->json(array(

每次在调用laravel中的函数之前,我都会检查请求ajax链接的人是否已登录。 我必须把这个检查函数放在每个函数中才能使它工作。如果我在函数外写入,它只会打印

请登录以查看此内容是否正常工作

即使我已登录。有没有办法将check函数放在控制器文件的开头,这样我就不必每次都在函数中写入它

  function index()
                if(!\Auth::check()) 
                return response()->json(array(
                    'status'=>'error',
                    'message'=> 'Please login to see this content'
                ));
    return redirect('/login')->with('msgstatus', 'error')->with('messagetext','Please login to see this content'); }

    function loadcalendar()
                if(!\Auth::check()) 
                return response()->json(array(
                    'status'=>'error',
                    'message'=> 'Please login to see this content'
                ));
    //somedefinition 
  }  
    function savecalendar()
                if(!\Auth::check()) 
                return response()->json(array(
                    'status'=>'error',
                    'message'=> 'Please login to see this content'
                ));
    //somedefinition 
}
从Laravel文档:

即使可以确定用户是否经过身份验证 使用check方法,您通常会使用中间件进行验证 在允许用户访问之前,用户已通过身份验证 某些路由/控制器。要了解更多信息,请查看 关于保护路线的文件

内置中间件可实现以下功能:

定义:

public function __construct()
{
    $this->middleware('auth');
}
例如,在控制器中,将对照验证中间件检查该控制器上的每个方法。

来自Laravel文档:

即使可以确定用户是否经过身份验证 使用check方法,您通常会使用中间件进行验证 在允许用户访问之前,用户已通过身份验证 某些路由/控制器。要了解更多信息,请查看 关于保护路线的文件

内置中间件可实现以下功能:

定义:

public function __construct()
{
    $this->middleware('auth');
}

例如,在您的控制器中,将对照auth中间件检查该控制器上的每个方法。

是。您可能需要在此处构建:

 public function __construct()
    {
        $this->middleware('auth');
    }

每个函数现在都需要身份验证。

是。您可能需要在此处构建:

 public function __construct()
    {
        $this->middleware('auth');
    }
现在每个功能都需要身份验证。

在控制器中, 添加此构造函数方法。这将使用内置的Auth中间件,并将所有未登录的用户重定向到登录页面

 public function __construct()
    {  

        $this->middleware('auth');
    }
在控制器中, 添加此构造函数方法。这将使用内置的Auth中间件,并将所有未登录的用户重定向到登录页面

 public function __construct()
    {  

        $this->middleware('auth');
    }

听起来你在找一个新的工作

现成的laravel有一个
auth
中间件,用于检查用户是否登录。要保护控制器上的特定路由,只需将其添加到路由中:

Route::get('/', 'YourController@index')->middleware('auth');
或者在构造函数或控制器中定义它:

public function __construct()
{
    $this->middleware('auth');
}
在使用构造函数方法时,还可以指定应该检查中间件的方法

public function __construct()
{
    $this->middleware('auth');

    $this->middleware('log')->only('index');

    $this->middleware('subscribed')->except('store');
}

请参阅文档中的。

听起来您正在寻找一个新的解决方案

现成的laravel有一个
auth
中间件,用于检查用户是否登录。要保护控制器上的特定路由,只需将其添加到路由中:

Route::get('/', 'YourController@index')->middleware('auth');
或者在构造函数或控制器中定义它:

public function __construct()
{
    $this->middleware('auth');
}
在使用构造函数方法时,还可以指定应该检查中间件的方法

public function __construct()
{
    $this->middleware('auth');

    $this->middleware('log')->only('index');

    $this->middleware('subscribed')->except('store');
}
请参阅文档中的