快速会话不起作用

时间:2015-07-07 14:47:00

标签: angularjs node.js session express

我正在使用快速会话构建一个简单的登录功能。但是,会话对象doest工作。我的逻辑是,当用户成功创建时,req.session将获得user_id。然后验证将检查req.session,但程序不会那样。登录api中的第一个控制台将在req.session中打印userId属性,但验证中的req.session不会。我不知道发生了什么事?

app.use(session({
   secret : 'xxxyyy',
   cookie :{
     maxAge : 60*1000
   }
}));


app.get('/api/validate',function(req,res){
  console.log(req.session);
  var _userId = req.session._userId;
  if(_userId) {
    User.findByUserById(_userId,function(err,user){
        if (err) {
            res.json(401,{msg:err})
        } else{
            res.json(user);
        };
    })
  }else{
    res.json(401,null);
  };
})

app.post('/api/login',function(req,res){
  var email = req.body.email;
  if (email) {
    User.findByEmailOrCreate(email,function(err,user){
        if (err) {
            res.json(500,{msg:err})
        } else{

            req.session._userId = user._id;
            console.log(req.session)
            res.json(user)
        };
    })
  } else {
    res.json(403);
  };
})

我的书说服务器重启后会清理会话。 我的客户端是像这样的Angular应用程序

    $http({
        url : "/api/login",
        method : 'POST',
        data : {
            email : $scope.email
        }
    }).success(function(user){
        console.log(user)
        $scope.$emit('login',user);
        $location.path('/')

我认为路径更改不会重启服务器。任何人都告诉我为什么?或者我如何改进代码。

0 个答案:

没有答案