首页 > 解决方案 > 登录后,Socket.io 在浏览器中发出和重定向/存储会话变量

问题描述

我基本上想使用 Node 和 Socket.io 将登录用户名存储在会话 cookie 中

这是代码:(在 /auth 中登录 POST 后执行)

app.post('/auth', function(request, response) {
var username = request.body.username
var password = request.body.password;
        if (username && password) {
            connection.query('SELECT * FROM accounts WHERE username = ?', [username], function(error, results, fields) {
                if (results.length > 0) {
                    let t = new Promise(function(resolve, reject) {
                        bcrypt.compare(password, results[0].password, function(err, res) {
                            if (err) {
                                 reject(err);
                            } else {
                                 resolve(res);
                            }
                        });
                    });
                    t.then((pswRes)=>{
                        if (pswRes==true){
                            io.emit("logged", request.body.username); //HERE <---
                            request.session.loggedin = true; //doesnt register in cookies (browser)
                            request.session.username = username; //doesnt register in cookies (browser)
                            console.log(request.session.username);
                            //console.log(t); 
                            return response.redirect('/home.html'); //HERE <---
                            }else{
                            return response.redirect('/log.html');
                            }
                    }).catch((pswRes)=>{
                        console.log("error"+pswRes);
                    });
                      
                } else {
                    return response.redirect('/log.html');
                }           
                //response.end();
            });
        } else {
           // response.send('Please enter Username and Password!');
           console.log("3333");
            //response.end();
        }});

(检查评论)

我正在尝试在 home.html 上使用发射和捕获来传递参数,然后将它们重定向到,然后将会话变量与

sessionStorage.setItem("用户名", 用户名)

我怎样才能做到这一点 ?替代方法也受到赞赏!

标签: javascriptnode.jswebsocketsocket.iosession-variables

解决方案


推荐阅读