Laravel:这两种路线api方法的区别是什么

时间:2017-12-05 00:27:55

标签: laravel cors middleware

Route::middleware(['cors'])->group(function () {

    Route::post('/login', 'AuthController@APIstore');

    Route::middleware(['auth:api'])->group(function () {

        Route::post('/logout', 'AuthController@APIdestroy');

        Route::get('/projects', 'ProjectController@getAll');

    });

});

这个

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

    Route::post('/login', 'AuthController@APIstore');

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

        Route::post('/logout', 'AuthController@APIdestroy');

        Route::get('/projects', 'ProjectController@getAll');

    });

});

在第一个代码中,CORS中间件使用/ login但不适用于/ logout和/ projects

在第二个代码中,CORS中间件根本不起作用

这背后有原因吗?

1 个答案:

答案 0 :(得分:1)

因此,根据Laravel Routing Doc,顶级中间件将应用于组中的所有组。因此,使用Route::middleware(['cors'])意味着此中间件将应用于Route::middleware(['auth:api'])

但是Route::group(['middleware' => 'cors']是一个组路由而不是中间件路由,因此中间不适用于子组。