【问题标题】:When i set req.session.whatever, the client doesn't get the cookie of connect.sid当我设置 req.session.whatever 时,客户端没有得到 connect.sid 的 cookie
【发布时间】:2016-09-27 01:53:59
【问题描述】:

我不知道出了什么问题,但很明显,当您使用 express-session 并执行类似操作时:

module.exports = function(app){
app.get('/',function(req,res){
    var username = req.session.username ||'';
    res.render('index',{username:username});
});
app.post('/sign-up',function(req,res){
    users_controller.signUp(req,res);
    res.redirect('/');
})
app.post('/log-in',function(req,res){
    users_controller.logIn(req,res);
    res.redirect('/');
})};

和 users_controller.logIn 函数

exports.logIn = function(req,res){
User.findOne({email:req.body.email}).exec(function(err,user){
    if(!user){
        err = 'User Not Found';
    } else if (user.hashed_password===hashPW(req.body.password.toString())){
        req.session.user = user.id;
        req.session.username = user.username;
        req.session.msg = "success authenticated as " + user.username; 
        console.log(req.session);
    }else{
        err = "Wrong Password";
    }
    if(err){
        req.session.regenerate(function(){
            req.session.msg = err;
        });
    }
});

当我直接在我的 app.post('/log-in',callback) 中设置 req.session.whatever 时,一切正常。但是当我使用另一个文件所需的 logIn 函数时。不过,您可以记录 req.session.whatever ,但客户端不会从响应标头中获取 set-cookie。 我真的一团糟。

【问题讨论】:

    标签: node.js session express cookies


    【解决方案1】:

    好吧,我很傻……

    这是一个异步的东西。 它重定向到主页而没有完成 req.session.whatever 的设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-20
      • 2014-03-31
      • 2013-01-25
      • 2017-05-31
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      相关资源
      最近更新 更多