0

我在快速应用程序中使用stormpath-express和express-session。登录部分工作正常。但是,当我注销时,以前的会话属性仍然存在于会话中。我可以看到会话属性connect.sid保持不变stormpath快速会话注销不删除会话

我像这样调用/注销<button class="btn btn-default btn-default navbar-btn" onclick="$.post('/logout', function(data) {location.href='/'})">这是对/ logout的ajax POST调用。

根据stormpath文档,会话将被销毁。但是,当我用不同的用户登录时,以前的会话cookie仍然存在。

var session = require('express-session');  
app.use(session({ 
     genid: function(req) { 
     return uuid.v1(); 
     }, 
     secret: 'xxxxx', 
     resave: false, 
     saveUninitialized: false 
    })); 

注销后,以前的会话属性仍然存在

var sess = req.session; 
     if(sess.phoneNumbers) { 
      console.log('reuse phoneNumbers from session'); // why it still here??? 
     } else { 

回答

0

Express-Stormpath只会删除其管理,它不会删除自己的Cookie饼干,因为我们不想干涉任何其他会话cookie可能用于的自定义用例。

如果您希望与我们同时删除您的Cookie,则可以实施在我们之前运行的路由处理程序。简单地调用上面这段代码的地方stormpath.init()

app.post('/logout', function (req, res, next) { 
    // delete the cookies that you need to delete 
    next(); // our logout handler will get called next 
    }); 

我们计划增加一个Post-Logout Handler,让你做同样的事情。

我希望这个答案有帮助!附:我在Stormpath工作,我维护这些库:)