' web'之间的区别和' auth'中间件?

时间:2016-04-10 06:45:09

标签: php laravel routes laravel-5.2 middleware

当我要使用 Laravel 5.2 框架的middleware组时,我遇到了一些问题。

我的 routes.php 文件是:

Route::group(['prefix' => 'categories'], function () {
    Route::get('all', ['as' => 'allCategory' , 'uses' => 'CategoryController@index']);
    Route::get('add', ['as' => 'addCategory', 'uses' => 'CategoryController@create']);
    Route::get('edit/{id}', ['as' => 'editCategory', 'uses' => 'CategoryController@edit']);
    Route::post('save', ['as' => 'saveCategory', 'uses' => 'CategoryController@store']);
    Route::put('update', ['as' => 'updateCategory', 'uses' => 'CategoryController@update']);
    Route::get('delete/{id}', ['as' => 'deleteCategory', 'uses' => 'CategoryController@destroy']);

});

Route::group(['middleware' => ['web']], function () {

    Route::get('/', function () {
        return view('welcome');
    });

    Route::auth();
    Route::get('/home', 'HomeController@index');

});

我在这里使用laravel默认登录/注册身份验证。使用php artisan make:auth命令。我想为某些routes限制用户,例如categories路由group.So,

  1. 如何限制用户的类别路线组?
  2. 如果我使用 Route :: group([' middleware' => [' auth']],function(){}); 则我收到了一个错误。那么'web'之间有什么区别? 和'auth' middleware
  3. 感谢。

    N.B:如果您需要了解任何文件,请在下面发表评论我将添加这些文件。

1 个答案:

答案 0 :(得分:4)

这是laravel 5.2的一个特色。 2默认中间件是web和api。

您需要在 web 中间件中放置类别组路由。

Web中间件使您的请求包含用于身份验证的cookie,session,csrf_token。否则, api 中间件用于应用程序,简单查询获取或发布没有请求标头,假设移动应用程序。

基于网络中间件验证中间件