Node.js 身份验证和令牌节点

Node.js 身份验证和令牌节点,node.js,authentication,Node.js,Authentication,我有个问题 我想做一个简单的登录页面, 但是我在通过http头传递令牌时遇到了问题 app.post('/login',(req,res) => { var body = req.body.user; User.findByCredentials(body.email,body.password).then((user) => { return user.generateAuthToken().then((token) => { res.head

我有个问题 我想做一个简单的登录页面, 但是我在通过http头传递令牌时遇到了问题

  app.post('/login',(req,res) => {
  var body = req.body.user;
  User.findByCredentials(body.email,body.password).then((user) => {
    return user.generateAuthToken().then((token) => {
      res.header('x-auth', token).send(user);
    });
  }).catch((e) => {
    res.status(400).send();
  });
});
这是登录页面的路径,我将令牌保存在标题中的“x-auth”中,这是有效的

但是

var authenticate = (req, res, next) => {
  var token = req.header('x-auth');

  User.findByToken(token).then((user) => {
    if (!user) {
      return Promise.reject();
    }

    req.user = user;
    req.token = token;
    next();
  }).catch((e) => {
    res.status(401).send();
  });
};
module.exports={authenticate}

此函数是女贞路的中间件,当我请求“x-auth”时,我得到了“Undefined”

这是连接两个代码的部分

app.get('/',authenticate,(req,res) => {
  res.sendFile(publicPath + '/index.html');
});

有人能帮我吗?

这两段代码之间有什么关系?什么时候调用
authenticate
?app.get('/',authenticate,(req,res)=>{res.sendFile(publicPath+'/index.html');});在这种情况下,我们错过了
我在标题中的'x-auth'中保存了令牌。你是怎么做到的?要在标头中设置令牌,简单节点方法
res.setHeader('auth-token',token)
我修复了登录路由中的代码,我使用了res.header('x-auth',token)