Laravel 5 Restful 资源控制器的授权以将资源限制为登录用户
Laravel 5 Auth for Restful Resource Controllers to restrict resource to logged in user
我有一个非常基本的 RESTful 地址管理器。我有用户帐户设置,用户登录全部基于 Auth,并且正在集成委托,但这超出了本文的范围。现在,我只想将对我的 AddressController 的访问权限限制为已登录的用户。我可以使用以下方法在路由上执行此操作:
Route::get('profile', ['middleware' => 'auth', 'uses' => 'UserController@getProfile']);
但是,如果我在我的 RESTful 资源上按如下方式尝试此操作,它不起作用 - 我没有收到错误,但未经身份验证的用户仍然可以访问该资源。
Route::resource('addresses', 'AddressController', ['middleware' => 'auth']);
尝试对应该使用特定中间件的资源进行分组:
Route::group(['middleware' => 'auth'], function(){
Route::resource('addresses', 'AddressController');
});
只有您知道您的场景如何,但另一种 运行 资源过滤器的方法是在资源的构造函数中调用所需的中间件,例如:
class AddressController extends Controller {
public function __construct()
{
$this->middleware('auth');
}
我有一个非常基本的 RESTful 地址管理器。我有用户帐户设置,用户登录全部基于 Auth,并且正在集成委托,但这超出了本文的范围。现在,我只想将对我的 AddressController 的访问权限限制为已登录的用户。我可以使用以下方法在路由上执行此操作:
Route::get('profile', ['middleware' => 'auth', 'uses' => 'UserController@getProfile']);
但是,如果我在我的 RESTful 资源上按如下方式尝试此操作,它不起作用 - 我没有收到错误,但未经身份验证的用户仍然可以访问该资源。
Route::resource('addresses', 'AddressController', ['middleware' => 'auth']);
尝试对应该使用特定中间件的资源进行分组:
Route::group(['middleware' => 'auth'], function(){
Route::resource('addresses', 'AddressController');
});
只有您知道您的场景如何,但另一种 运行 资源过滤器的方法是在资源的构造函数中调用所需的中间件,例如:
class AddressController extends Controller {
public function __construct()
{
$this->middleware('auth');
}