在node.js和redis中使用护照进行授权

我正在做护照模块和redis的经典授权,作为node.js中会话的持久性。 会话很好地保存到我的redislogin后,当redis中的会话的ttl很好地更新时,另一个请求login后等等

令我困扰的是当我在redis中手动删除会话时(或者在没有会话的情况下login之前),其他请求(除了login之外)正常传递。 不应该护照自动答复作为unautorized或我们应该这样做手动莫名其妙? 在哪一部分代码中,我应该检查在redis中是否存在与cookie相关的会话。

谢谢,伊万

如果有人需要,这是我的代码:

// use local strategy passport.use(new LocalStrategy( function(username, password, done) { var userPromise = userData.findByUsername(username); userPromise.success(function(user){ if (!user) { return done(null, false); } if ( user.password != security.hash(user.salt, password) ){ // check password return done(null, false); } var userCookie = { id : user.id, username : username } return done(null, userCookie); }) .error(function(err){ return done(err); }); } )); passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { done(null, {id:id}) }); // adding express middleware for passport and redis store app.use(express.session({ secret: "s0meR4nd0mT0k3n", store : new RedisStore({ host : config.redis.host, port : config.redis.port //user : config.redis.username, //pass : config.redis.password }), cookie : { maxAge : 604800 } })); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router);