node.js - Node JS - Express、Socket.io 在用户注销时完成 session 销毁

标签 node.js express socket.io

session 变量是在用户登录系统时创建的。然后我在授权代码中加载 session 变量。我想在用户注销时销毁该变量。这是一些简化的代码

 store = new express.session.MemoryStore();
 var parseCookie = express.cookieParser('secret');
 app.use(parseCookie);
 app.use(express.session({store: store, key:'sid'}));


    app.post('/login', function(req,res){
       var post = req.body;
       if (post.user == 'hugo' && post.password == '123') 
       {
          req.session.user_name = post.user;
          res.redirect('/mypage');
       } 
       else  res.send('wrong user or pass');
    });


    io.set('authorization', function (data, callback) {

         parseCookie(data, {}, function(prserr) {
            var sess = (data.secureCookies && data.secureCookies['sid']);
            store.load(sess, function(err, session){
               if (err || !session ) { callback('not logged in', false); }
               else { 
                       data.session = session;  // save session
                       callback(null, true); 
                    }
            });     
         });

     });

最后

     app.get('/logout', function (req, res) {
        req.session.destroy();
        /* Here I want to destroy session variable that is declared in 
           authorization code (see above: data.session = session )*/
        res.redirect('/'); 
     }); 

通过 req.session.destroy() 变量销毁 session 时 socket.handshake.session.user_name 仍然存在。我也想毁掉它。但我不知道如何在上述位置(在注销代码中)访问所需的变量。

最佳答案

您是否考虑过使用 Passport ?它可能比尝试推出自己的身份验证解决方案更快(也更高效)。

关于node.js - Node JS - Express、Socket.io 在用户注销时完成 session 销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391631/

相关文章:

javascript - 单击按钮导航至路线

node.js - REST API 端点命名

javascript - 让几个模块使用同一个mongo实例

javascript - 使用 Socket.io v1.0 和 Express 检索客户端 IP 地址

javascript - Socket.io 不处理 IE 和 Firefox 中的 JSON

node.js - socket.io 未向所有客户端发送

node.js - 使用socket.io连接到iOS7上的Nodejs服务器

javascript - 如何在 .hbs 文件中执行 sql 查询,就像我们使用 php 执行 for .html 一样?

javascript - 在nodejs、express和angular1.x中动态上传指定路径的所有文件

node.js - Heroku 找不到本地 npm 包