我想在通用应用程序的反应服务器中添加csurf作为快速中间件。
我想要实现的是将 csrf 令牌添加到反应组件中表单中的隐藏输入中,以维护服务器呈现的网站将提供的相同 csrf 保护流,但在 SPA 中。
这在反应服务器中技术上可行吗?如果是这样,我如何通过页面(理想情况下)将响应对象中可用的 csrf 令牌传递给反应组件?
我实际上遇到了同样的问题,幸运的是在这里遇到了解决方案:https ://github.com/kriasoft/react-starter-kit/issues/1142
使用它只需:
app.use(csrf({ cookie: true, value: (req) => (req.cookies.csrfToken) }));
然后为每个获取请求设置一个带有 csrf 令牌的 cookie:
res.cookie('csrfToken', req.csrfToken ? req.csrfToken() : null, { sameSite: true, httpOnly: true });