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

标签 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 中间件根本不起作用

这背后有什么原因吗?

最佳答案

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

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

关于Laravel:这两种路由 api 方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644195/

相关文章:

php - 两个相同模型/表之间的两种关系

go - 将中间件与 Golang Gorilla mux 子路由器结合使用

node.js - 在 Node/Express 应用程序中存储状态

cors - EnableCorsAttribute 和 EnableCors 有什么区别

javascript - 在express js中,太多的中间件函数会降低性能吗?

php - 当特定规则失败时在重定向后执行操作 - Laravel 验证

php - Laravel - PDO - 动态表名

php - Laravel 5.0 - 在哪里使用服务提供商的绑定(bind)?

spring-security - Zuul Proxy CORS header 包含多个值, header 重复两次-Java Spring Boot CORS过滤器配置

javascript - 从 React(同构应用程序)进行 API 调用时出现“Access-Control-Allow-Origin”问题