Laravel Kernel middlewareGroups 适用于路由但不适用于分组路由

Laravel Kernel middlewareGroups works for routes but not for grouped routes

抱歉这个奇怪的标题。我不是母语人士。 所以,这是我的 routes/api.php 内容:

Route::post('login', 'Api\LoginController@login');

Route::group([
    'prefix' => 'restricted',
    'middleware' => 'auth:api',
], function () {
    // Authentication Routes...
    Route::post('logout', 'Api\LoginController@logout');

    Route::get('user', 'Api\LoginController@getUser');
});

您可能知道,默认情况下,此文件中的每个路由都有 api 前缀。在我的 Kernel.php 中,我为 api 路由设置了一个中间件:

protected $middlewareGroups = [
    'web' => [
        ...
    ],

    'api' => [
        ...,
        \Barryvdh\Cors\HandleCors::class,
    ],
];

现在我的问题是,当我从一个单独的应用程序(angular.js 应用程序)点击 myapp/api/login 它工作正常但是当我尝试从 myapp/api/restricted/user 获取用户数据时我得到No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。

我该如何解决这个问题?

问题出在 Api\Login Controller 上的 getUser 方法。我不知道为什么会出现 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误,但我很高兴它已修复。