【发布时间】:2018-11-21 14:30:52
【问题描述】:
当我尝试使用 Chrome、Firefox 和 Safari req.logout() 在后端正常工作时,我在 app.js 中有以下代码,但是当我尝试使用 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。
【问题讨论】:
-
你用的是哪个版本的IE?
-
我正在使用 IE 11+
-
究竟是怎么回事?如果会话在后端被清除,则前端在再次登录之前应该无法访问任何 API。另外,也许检查这个答案:stackoverflow.com/a/50473675/3349511
-
@vesse 实际上它已解决,我错过了将
cache: false放入$.ajax电话。 IE 将数据存储在缓存中。
标签: node.js session cookies passport.js session-cookies