WEB-API実装のときに、いきなりPOSTしようとしたら「invalid csrf token」とかいって怒られて困ったので、回避パターン考えました。
※標準(csurf version 1.9.0)ではリクエストメソッドの回避パターンしかオプションで用意されていないっぽい。
方法はシンプルで、CSURFのモジュール実行の手前でFUNCTIONをかまします。
ignoreUriPattern
var express = require('express')
var app = express();
var csrf = require('csurf');
//csurfファンクションの取得(いつもapp.use(csrf({ cookie: true }))とかしてたとこ)
var csrfFuc = csrf({ cookie: true });
//アプリにかませる
app.use(function(req,res,next){
//無視するURIのパターンを並べる
var ignoreUris = ['^\/api\/.*$']
for (var i=0,len=ignoreUris.length; i<len; i++) {
//パターンマッチしたらそのまま処理を次へまわす。
if(req.url.match(ignoreUris[i])){
next();
return;
}
}
//パターンマッチしなかったら、CSRFの処理を通す。
csrfFuc(req,res,next);
})