我正在尝试实施以下工作流程。
req.body
的请求发送到另一个后端(django)问题是我被困在csrf级别,更具体地说是遇到此错误:
invalid csrf token
403
ForbiddenError: invalid csrf token
这是我用于请求的代码:
router.post('/registration', function (req, res, next) {
axios.post('http://localhost:8000/register_extended/', JSON.stringify(req.body), {
'Content-Type': 'application/json'
}).then(() => {
console.log('success')
}).catch(() => {
console.log('failure')
})
res.send('respond with a resource');
});
});
这是我的中间件
app.use(bodyParser.urlencoded({ extended: true }));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(csrfMiddleware);
如何为我的需求提供有效的csrf令牌? Axios应该自己处理,这就是我选择它的原因。
答案 0 :(得分:0)
Django 使用 CSRF 令牌来防止来自不受信任域的 CSRF 攻击。您可以将运行 express 的站点或 IP 列入白名单,以便在没有 CSRF 令牌的情况下发出发布请求。将此添加到您的 Django 'settings.py':
CSRF_TRUSTED_ORIGINS = [
"yoursite.runningexpress.here.com"
]