nodejs中的会话

时间:2014-11-06 11:13:54

标签: node.js session authentication cookies express

抱歉新问题,但是你能解释一下如何在nodeJS中使用会话。我在互联网上阅读了很多文章,但是我没有成功为我的目的实现某些东西(数据正在保存会话,但每个新的请求会话都是空的),你能从一开始就举例说明如何初始化和如何使用

目的:当用户在系统中登录时,我需要为他打开会话,并且他将来发送的每个请求都需要检查他的会话是否存在?

我正在使用快递4.x.我这样做:

// init session
app.use(cookieParser());
app.use(session({
  secret : "yepiMobileSession",
  resave : true,
  key : "session",
  store: mongooseSession(daoService.mongoose), 
  saveUninitialized : true
}));


// save user to the session
request.session[CONST.SESSION_USER] = user;

// Check login
function checkLogin(id){
        var user = request.session[CONST.SESSION_USER];
        if (user && request.params.clientData && user._id == id){
            return true;
        } else {
            return false;
        }
    }

1 个答案:

答案 0 :(得分:2)

您可以查看以下代码。我想这会对你有所帮助。

var app = require('express')(),
    expressSession = require('express-session'),
    cookieParser = require('cookie-parser');

app.use(cookieParser());
app.use(expressSession({
    secret: 'mYsEcReTkEy',
    resave: true,
    saveUninitialized: true
}));// I haven't used the session store

//setting session

app.post('/login', function(req,res){
  var id=12345;
  req.session.userId = id;
  res.send(200);
});

//getting session

app.get('/hello', function(req,res){
  var id=req.session.userId;
  console.log("Hello",id);
  res.send(200);
});

但是节点服务器和客户端必须位于同一个域中。