私は Node.js サーバーを使用しており、Connect フレームワークで開発しています。セッションの固定を避けるために、一定の間隔で SID を再生成しようとしています。ドキュメントによると、まさにそれを行う必要があるreq.session.regenerateというメソッドがあります。
« セッションを再生成するには、メソッドを呼び出すだけです。完了すると、新しい SID とセッション インスタンスが req.session で初期化されます »
コード例:
req.session.regenerate(function(err){
// will have a new session here
});
上記のメソッドを呼び出した後、req.sessionID の値を確認しましたが、値が以前と同じであることがわかりました。
req.session.regenerate 内から sessionID を取得して端末に書き込もうとすると、新しい SID が取得されます。これはさらに困惑します ~ IE コールバックのスコープ内でのみ SID を生成する必要があるのはなぜですか? 値をグローバル変数に割り当てると、その値は未定義になります。
私が見落としているのは本当に明らかなことだと感じています。
どんな助けでも大歓迎です。