2017-06-06 6 views
1

私はnodejs expressフレームワークを使ってRESTサービスを開発しており、ユーザーのデータを識別するキーとしてユーザーのIDを持つセッション内のユーザー固有のデータを保持していました。ここでアプリケーションを再起動せずにすべてのユーザーの明示セッションをクリアするにはどうすればよいですか?

が、私は店のユーザー固有のデータを使用していたコードです:

let session = require("express-session"); 
let FileStore = require("session-file-store")(session); 

//For setting up the data into session 
session[userId]={name:xyz, age:22} 

//For getting the data 
session[userId] 

私はまた、すべてのセッション値をクリアしなければならない、有効期限とのセッションを設定しています。

webserver.use(session({ 
     cookie: { 
      maxAge: 60 * 1000 // 24 hours 
      // maxAge: 24 * 60 * 60 * 1000 // 24 hours 
     }, 
     key: "sid", 
     resave: false, 
     saveUninitialized: false, 
     secret: "keyboard cat", 
     store: new FileStore(storageOptions), 
    }));` 

ただし、有効期限を過ぎてもセッションの値は保持されているようです。これらは休憩サービスであり、この中にクッキーは含まれていませんが、代わりにユーザーのIDを使用しています。

このセッションは、有効期限を過ぎてもクリアされるはずですが、そうではありません。

質問1:サーバーを再起動しなくても、いつでも完全なセッション値をクリアできますか? 質問2:上記のコードのように有効期限が効いていないのはなぜですか?

何か間違っていますか?

私はcookie.maxAgeが非アクティブ時間を定義するために使用されると思わ事前

答えて

1

感謝を助けてください。したがって、セッションは24時間休止した後に切断されます。

あなたはdetroyのユーザーセッションにしたい場合は、あなたがこのようsomethink使用することができます:

req.session.destroy(function (err) { 
    if (err) { 
    // Handle error 
    } 
    else { 
    // Session destroyed ! 
    } 
}); 

はそれが役に立てば幸い!

関連する問題