Laravel 5 Auth for Restful Resource Controllers将资源限制为登录用户

时间:2015-03-15 21:28:04

标签: authentication laravel-5 laravel-routing

我有一个非常基本的RESTful地址管理器。我有用户帐户设置,用户登录全部基于Auth,我正在整合委托,但这超出了这个范围。现在,我只想限制对登录用户的AddressController访问。我可以使用以下命令在路由上执行此操作:

Route::get('profile', ['middleware' => 'auth', 'uses' => 'UserController@getProfile']);

但是,如果我在我的RESTful资源上尝试这个,如下所示它不起作用 - 我没有收到错误,但未经过身份验证的用户仍然可以访问该资源。

Route::resource('addresses', 'AddressController', ['middleware' => 'auth']);

1 个答案:

答案 0 :(得分:3)

尝试对应使用特定中间件的资源进行分组:

Route::group(['middleware' => 'auth'], function(){
    Route::resource('addresses', 'AddressController');
});

只有您了解您的方案是什么,但在资源中运行过滤器的另一种方法是在资源的构造函数中调用所需的中间件,如:

class AddressController extends Controller {

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