这个
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 中间件根本不起作用
这背后有什么原因吗?
最佳答案
因此,根据 Laravel Routing Doc ,顶级中间件应用于组中的所有组。所以使用 Route::middleware(['cors'])
意味着这个中间件将应用于 Route::middleware(['auth:api'])
。
但是 Route::group(['middleware' => 'cors']
是组路由而不是中间件路由,因此中间件不适用于子组。
关于Laravel:这两种路由 api 方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644195/