print 'Hello World!';

hogehoge備忘録

Laravel#CSRFトークンチェックを無効化する

環境:Laravel5

CSRFチェックの本体は「app/Http/Middleware/VerifyCsrfToken.php」です。
ここにCSRFチェックを無効にしたいフォームを記載する。

[デフォルト設定]

    public function handle($request, Closure $next){
        return parent::handle($request, $next);
    }

[変更後]

    // CSRFを除外したいURLリスト
    protected $routes = [
        'hoge/fuga',
        'foo/bar',
        'baz/qux',
    ];

    // handleを変更
    public function handle($request, Closure $next){
        if($this->excludedRoutes($request)){
            return $this->addCookieToResponse($request, $next($request));
        }
        return parent::handle($request, $next);
    }

    /*
    * CSRFを除外したいURLであるかどうかをチェックする。
    * @param Request リクエスト
    * @return boolean CSRFを除外したいURLであればtrue
    **/
    protected function excludedRoutes($request){
        foreach($this->routes as $route){
            if ($request->is($route)){ return true; }
        }
    }

#参考サイト

Laravel5.0 CSRFチェックを無効化 - Qiita