此
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中间件根本不起作用
这背后有原因吗?
答案 0 :(得分:1)
因此,根据Laravel Routing Doc,顶级中间件将应用于组中的所有组。因此,使用Route::middleware(['cors'])
意味着此中间件将应用于Route::middleware(['auth:api'])
。
但是Route::group(['middleware' => 'cors']
是一个组路由而不是中间件路由,因此中间不适用于子组。