【问题标题】:Session access issue in nodejs?nodejs中的会话访问问题?
【发布时间】:2012-06-07 21:50:30
【问题描述】:

我已修改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) });
});

如果我从下到上粘贴应用程序代码,则everyayth 的路由不起作用。我想简单地知道如何访问everyauth 函数中的req.session.login

【问题讨论】:

    标签: debugging node.js routing


    【解决方案1】:

    您无法通过authenticate 函数访问会话。支持访问经过身份验证的用户信息的everyauth 方法是让您向everyauth 提供findUserById 函数,该函数将根据用户ID 查找用户记录,该用户ID 在身份验证期间存储在会话中。完成此操作后,您可以通过req.user 访问路由处理程序中的所有用户属性。

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

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 2015-06-17
      • 2016-05-12
      • 2014-06-29
      • 2013-12-11
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      相关资源
      最近更新 更多