在laravel 5中禁用csrf for unprotect方法post,put和delete

时间:2015-03-21 14:53:19

标签: laravel-routing

在laravel 4中没有使用csrf保护方法(POST,PUT和DELETE)是默认的但是在larave 5中使用csrf来保护post,put和delete方法从注入代码默认是默认的。这种保护对形式没有问题,但是对于构建api休息有问题。

请帮我演示如何在laravel 5中为build api rest禁用csrf unprotect方法(POST,PUT和DELETE)谢谢

3 个答案:

答案 0 :(得分:1)

转到app-> http->内核

打开内核文件:

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
  //  \App\Http\Middleware\VerifyCsrfToken::class, // this is the csrf token, just disable using '//'
];

答案 1 :(得分:0)

这是here的方法,我测试过它应该没问题。

简而言之,要在特定页面中禁用csrf,只需将app / Http / Middleware / VerifyCsrfToken.php更改为以下内容:

public function handle($request, Closure $next)
    {
        //disable CSRF check on following routes
        $skip = array(
                    'user/path/xys',
                    'user/profile',
                    'my/unprotected/route'
                    );

        foreach ($skip as $key => $route) {
            //skip csrf check on route
            if($request->is($route)){
                return parent::addCookieToResponse($request, $next($request));
            }
        }

        return parent::handle($request, $next);
    }

答案 2 :(得分:0)

如果您只关注/api/*路线,可以在Stack Overflow

上按照我的回答

HOpe这可以帮助您获得干净和简短的代码。