如何禁用带参数的路由的csrf保护?

3

有一个路由如下:

Route::post('user/{id}/update','UserController@update');

我想禁用它的csrf保护,但我不知道如何将其uri添加到except数组中。

2个回答

2

您可以将给定的代码添加到App/Http/Middleware目录下的VerifyCsrfToken文件中。

protected $except = [
    'user/*',
];

或者您可以在路由文件中禁用它。
Route::post('user/{id}/update', [
   'uses' => 'UserController@update',
   'nocsrf' => true,
]);

3
你好,我没有在文件中看到第二个方法。你能给我提供关于第二个方法的链接吗? - DengDeng

1

在 Laravel 的最新版本中,最好的解决方案之一是使用 withoutMiddleware 方法:

Route::post('user/{id}/update', 'UserController@update')
    ->withoutMiddleware([\App\Http\Middleware\VerifyCsrfToken::class]);

即使您将路由放在中间件组内,此方法仍然有效。

Route::middleware(['web'])->group(function () {
    Route::post('user/{id}/update', 'UserController@update')
        ->withoutMiddleware([\App\Http\Middleware\VerifyCsrfToken::class]);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接