CNode

express-session 服务器主动删除指定用户的session问题

问答
Aadam1985发布于12 年前最后回复12 年前6 回复11365 浏览0 收藏

在最近的项目中,遇到一个问题。在每次用户登录的时候,都把用户的信息保存在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)

M
MiguelValentine#1·12 年前

session能删除的唯一“正确方法” 就是过期。 你要是想针对某一SESSION删除。直接进MONGODB删就行了。

A
adam1985#2·12 年前

MONGODB集合里,怎么判断是哪个用户呢

M
MiguelValentine#3·12 年前
引用 adam1985MONGODB集合里,怎么判断是哪个用户呢

@adam1985 用户信息也是在MONGODB里的,SID是KEY,V是JSON.parse(session)

E
eeandrew#5·12 年前

express-session + passport 合用才是正道。这样你就不用操作session数据库了。 session数据库里的信息必须严格用过期自动删除的方法。不要乱动。

参与回复
登录后即可参与回复。登录