3

を使用して単一ページのアプリケーションを作成し、セッション管理MEAN stackに使用express-sessionしています。redis

クライアントの Cookie で scrf トークンを使用したいと考えています。

問題は、csurfミドルウェアを追加するときにcsrfSecret、redis で名前のセッションを設定することですが、それを Cookie でクライアントに送信するにはどうすればよいですか?

ミドルウェア:

 app.use(csrf({}));

 app.use(function(req, res, next) {
     res.cookie('csrf-token', req.csrfToken());
     return next();
 });

クライアントにcsrf-token送信していますが、何もしません。モジュールから403エラーを受け取ります。

答えやアイデアをありがとう。

4

1 に答える 1

4

クライアントで csrf Cookie を作成する場合は、次を使用する必要があります。

app.use(csrf({ cookie: true })

これにより、クライアントにトークンが作成されます。csrf 関数にオプションを渡さない場合は、req.session. cookie-parserCookie をクライアント側に保存する場合は、モジュールを使用する必要があることに注意してください。

プロジェクトへの github リンクで詳細を確認できます: https://github.com/expressjs/csurf

于 2018-08-29T13:51:45.700 に答える