2016-05-29 1 views
-1

私は何が問題なのか分かりませんが、明示的セッションを使用するときにはっきりとわかります。私はreq.session.whateverを設定しても、クライアントはconnect.sidのクッキーを取得しません。

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にreq.session.whatever直接設定(コールバック '/インをログ')、すべてがうまく動作します。しかし、別のファイルから必要とされたlogIn関数を使用すると、それでも、req.session.whateverをログに記録することはできますが、クライアント側は応答ヘッダーからセットクッキーを取得しません。 私は本当に混乱しています。

答えて

0

OK私はばかだ...

これは非同期なものです。 req.session.whateverを設定せずにホームページにリダイレクトします。

関連する問題