[英]node.JS - express - connect-redis how to delete a record
我這里是一個直接從快遞文件中得到的例子。
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat" }));
var RedisStore = require('connect-redis');
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));
我所知道的是,這段代碼將創建一個 session id,並自動將 session id 存儲在 redis 數據庫中。 正確的?
現在,假設生成的 session_id 是 555444,當不再需要記錄時如何刪除它?
這些都行嗎?
store.destroy('555444', function(err) { ... })
或者
app.get('/', function(req, res) {
if (req.session.sid == '555444') {
req.session.destroy(function(err) { ... });
}
})
我遇到了類似的情況,我想在注銷期間銷毀現有的 session 並清除 cookie。 這對我來說似乎很好用(商店是 RedisStore 的一個實例)。
app.get('/logout', function (req, res) {
res.contentType('json');
store.destroy(req.sessionID, function () {
req.session.destroy(function () {
res.clearCookie(sessionOpts.key, { path: '/' });
res.send({ success: true });
});
});
});
I created an example on Github that uses backbone.js , node.js , express.js , mongodb , socket.io and redis if you want to check it out. 我將它貢獻給了主干樣板回購。
您只需將 sessionID 提供給 destroy 方法,這將從 Redis 數據庫中清除 session 密鑰。 這是對我有用的代碼:
req.session.destroy(req.sessionID, function () {
// Passport logout
req.logout();
});
每個 session 密鑰集在 redis 上過期,因此這些密鑰將在一段時間后自動過期(根據 session maxAge)。 快遞session
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.