nodejs中的会话访问问题?

时间:2012-06-07 21:50:30

标签: debugging node.js routing

我已修改https://github.com/jimpick/everyauth-example-password/blob/master/server.js以使用mysql登录。

我想在

中访问会话
authenticate(function(login, password) {
        var errors = [];
        var user = [];
        userModule.CheckUserLogin(login, password, function(err, results) {
            if(results.length > 0) {
                req.session.login = login;
                return user;
            }
            else {
                if(!user) return ['Login failed'];
            }
        });
        return user;
    })

我在底部有这个代码

var app = express.createServer(

    express.bodyParser()
  , express.static(__dirname + "/public")
  , express.cookieParser()
  , express.session({ secret: 'htuayreve' })
  , everyauth.middleware()
);

app.configure(function() {
    app.set('view engine', 'jade');
});

app.get('/', function(req, res) {
    res.render('home', { users: JSON.stringify(usersByLogin, null, 2) });
});

如果我从底部到顶部粘贴应用程序代码,那么每个人的路由都不起作用。我想简单地知道如何访问everyauth函数中的req.session.login

1 个答案:

答案 0 :(得分:1)

您无法通过authenticate功能访问会话。支持访问经过身份验证的用户信息的每种方式都是为了向每个人提供一个findUserById函数,该函数将根据在身份验证期间存储在会话中的用户ID来查找用户记录。完成后,您可以通过req.user访问路径处理程序中的所有用户属性。

请参阅everyauth website上的“访问用户”部分。