使用Connect basic auth的Expressjs不会设置请求用户

时间:2012-03-20 01:38:31

标签: node.js express connect basic-authentication

我正在使用express并通过connect中间件添加基本身份验证。我正在尝试使用异步版本,它声称在使用异步版本调用时,将在请求对象上设置user属性。

如果我用一个对象调用正确的fn(err, obj);,那么基本身份验证会通过并移动到我的路由上,但我希望在到达我的路由时设置req.user

Here是基本身份验证的连接文档。

我没有正确调用回调吗?

app.use(express.basicAuth(function(user, pass, fn){

    db.getUserByEmail(user, function(err, obj){

      if (err) sendError(500, req, 'error', err);
      else if (obj == null) fn(err, obj); 
      else if (obj.password == pass) fn(null, obj); 
      else fn(null, null); 

    });
  }));

2 个答案:

答案 0 :(得分:1)

连接的文档中提到的不同,在快递中,经过身份验证的用户将被分配到req.remoteUser

答案 1 :(得分:0)

我已经检查了文档中的代码,你已经附加了,它已经设置了req.user,所以,如果这与文档中执行的代码完全相同,一切都应该正常工作:)

顺便说一句,为什么不使用更友好的东西,并且像passportjs一样记录良好?