Node.js路由认证

时间:2018-01-26 14:38:57

标签: node.js authentication jwt

我是node.js的新手,我正在尝试按照教程,并尝试修改项目的结构。在本教程中,他们拥有server.js文件中的所有端点。我为模型,路线和控制器创建了一个文件夹。我正在使用JWT湿令牌。

在教程中,他们有以下代码:

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;
   }).catch((e) => {
      res.status(401).send();
   });
  };

app.get ('users/me/', authenticate, (req,res) => {
   res.send(req.user);
});

我创建了以下文件夹结构:
enter image description here

这是我的authenticate.js代码:
enter image description here

这是我的UserModel.js代码:
enter image description here

这是我的UserRoute.js代码:
enter image description here

这是我的UserController.js代码:
enter image description here

我不知道如何在export.get_user(红色)中使用如何在我的控制器中使用我的身份验证功能。

我需要做什么或改变什么?

1 个答案:

答案 0 :(得分:0)

我建议你阅读这篇关于Express Middleware的好文章。同时,您可以通过如下传递authenticate来解决问题。

<强> UserController.js

// other code  

exports.get_user = function(req, res) {
   res.send(req.user);
}

<强> UserRoute.js

module.exports = function(app) {
    // other code

    app.route('/user/me').get(authenticate, user.get_user);
}