在使用ExpressJS的节点应用程序中,我们启用了CRSF中间件。 这很好用,但是我们有一些以/ api开头并接受失败(禁止)的POST请求的路由,因为当然没有CRSF令牌。 我们如何绕过/避免CRSF for / api帖子?
答案 0 :(得分:0)
您可以有条件地传递中间件内部,因此一个选项是查看这样的模式:
function yourMiddleware(req, res, next) {
if ( null !== req.path.match(/^\/api/) ) {
next();
}
//your CRSF behavior here
}
答案 1 :(得分:0)
如何在CSRF中间件之前注册这些路由?喜欢:
var express = require('express');
var app = express();
app.use(express.bodyParser());
app.use(express.cookieParser('your-secret'));
app.use(express.session());
app.use('/api', require('path to your module that does not need csrf'));
app.use(express.csrf());
app.use('/othermount', require('path to your module that needs csrf'));
编辑:扩展代码示例以阐明我的想法。