【问题标题】:Web middleware being applied to API routes in Laravel 5.2在 Laravel 5.2 中应用于 API 路由的 Web 中间件
【发布时间】:2016-04-07 21:51:42
【问题描述】:

我有以下路线:

Route::group(['prefix' => 'api/v1', 'middleware' => 'api'], function() {
    Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]);
    Route::post('authenticate', 'AuthenticateController@authenticate');
    Route::resource('users', 'UserController');
});

UserController 有一个测试,以确保当用户通过POST 提交时,它会正确验证输入。这应该在无效时返回 422,但实际上返回 302。在 Postman 中,它会引发 CSRF 令牌错误,表明正在应用 web 中间件组,这不是我想要的行为。

我怎样才能防止这种情况发生?

【问题讨论】:

    标签: php laravel laravel-5.2


    【解决方案1】:

    RouteServiceProvider.php

        $router->group([
            'namespace' => $this->namespace, 'middleware' => 'web',
        ], function ($router) {
            require app_path('Http/routes.php');
        });
    

    到:

        $router->group([
            'namespace' => $this->namespace,
        ], function ($router) {
            require app_path('Http/routes.php');
        });
    

    然后在routes.php 中使用Route::group(['middleware' => 'web']) 包装您的网络路由。所以api路由不会受到web中间件的影响。

    【讨论】:

    • 这是我的确切问题。谢谢!
    • 我也没有在视图和 route:list 中看到 $errors 我看到 web 中间件出现了两次。但是,这是解决这两个问题的解决方案。
    猜你喜欢
    • 2017-07-23
    • 2016-05-24
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2020-01-20
    • 2016-05-14
    相关资源
    最近更新 更多