req.logout()或req.session.destroy()不能与IE 11+浏览器

时间:2018-06-12 08:50:37

标签: node.js session cookies passport.js session-cookies

当我尝试使用Chrome,Firefox和Linux时,我在app.js中有以下代码Safari req.logout()在后​​端工作正常,但是当我尝试使用IE浏览器注销时,它不起作用。我使用了以下代码进行安装会话和注销API。

// set up our express application
app.use(cookieParser());

// required for passport
app.use(session(
    { 
        secret: 'SECRET',
        resave: true,
        saveUninitialized: true,
        maxAge: new Date(Date.now() + 1*60*60*1000),
        store: new MongoStore(
            {
                mongooseConnection : mongoose.connection
            }
        )        
    }
)); // session secret

app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions

退出GET API

req.logout();
req.session.destroy(function(err){
   req.user = null;
   req.session = null;
   res.cookies('connect.sid', "", { expires: new Date(0)})
});

请建议我在IE上清除Cookie的更好方法。

1 个答案:

答案 0 :(得分:0)

我找到了自己的方式,这是一个愚蠢的错误。

默认情况下,在IE浏览器中,它的缓存API,我的API在注销和重新登录后首次缓存,因为已经缓存它没有向服务器端调用API,它'从缓存中取出。

我找到了解决方案。我在cache: false调用中使用了$.ajax参数。