Laravel 拉威尔:这两种路由api方法有什么区别

Laravel 拉威尔:这两种路由api方法有什么区别,laravel,cors,middleware,Laravel,Cors,Middleware,这个 还有这个 Route::middleware(['cors'])->group(function () { Route::post('/login', 'AuthController@APIstore'); Route::middleware(['auth:api'])->group(function () { Route::post('/logout', 'AuthController@APIdestroy'); Rou

这个

还有这个

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');

    });

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

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


这背后有什么原因吗?

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


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

那么您的
cors
中间件做什么呢?这些都是一样的…只需运行
php artisan路由:list
并查看哪些中间件附加到您的路由上“中间件应用于组中的所有组”…然后下一段…除了您的组,因为它们是组?
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');

    });

});