express-session 服务器主动删除指定用户的session问题
在最近的项目中,遇到一个问题。在每次用户登录的时候,都把用户的信息保存在session值中。 所以现在有个问题,如果在后台管理端把该用户删除,但是由于此用户的信息保存在session中,如果此用户一直没有重新登录,则没有达到删除的效果,即用户仍然可以登录操作。 现在想,能否在服务器端主动删除此session???达到彻底删除用户的效果
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
app.use(session({
secret: settings.cookieSecret,
key: settings.db,//cookie name
cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
store: new MongoStore({
db: settings.db,
host: settings.host,
port: settings.port
})
}));
6 回复
session能删除的唯一“正确方法” 就是过期。 你要是想针对某一SESSION删除。直接进MONGODB删就行了。
MONGODB集合里,怎么判断是哪个用户呢
@adam1985 用户信息也是在MONGODB里的,SID是KEY,V是JSON.parse(session)
@MiguelValentine 只能这样了,谢谢
express-session + passport 合用才是正道。这样你就不用操作session数据库了。 session数据库里的信息必须严格用过期自动删除的方法。不要乱动。