2017-01-04 16 views
6

csurfをユニバーサルアプリのreact-serverの中にエクスプレスミドルウェアとして追加したいと思います。反応サーバーでcsurfを使用する

私が達成したいのは、反応コンポーネントのフォームに隠れた入力にcsrfトークンを追加して、サーバーでレンダリングされたWebサイトが提供するのと同じcsrf保護フローをSPA内に維持することです。

これはリアクションサーバ内で技術的に可能ですか?もしそうなら、どのように応答オブジェクトで利用可能なcsrfトークンをページ経由で(理想的には)反応コンポーネントに渡すことができますか?

答えて

2

私は実際には同じ問題に遭遇したと幸運にもここに解決策に遭遇することが起こった:https://github.com/kriasoft/react-starter-kit/issues/1142

それを使用するだけでください:

app.use(csrf({ cookie: true, value: (req) => (req.cookies.csrfToken) })); 

し、その後、すべての要求がでクッキーを設定しますcsrfトークン:

res.cookie('csrfToken', req.csrfToken ? req.csrfToken() : null, { sameSite: true, httpOnly: true }); 
+0

これを指摘していただきありがとうございます。これはかなり一般的な解決策であるようですので、反応サーバーのコンテキストでも動作する可能性があります。 – feychou

関連する問題