繁体   English   中英

Node.js路由身份验证

[英]Node.js routes authentication

我对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);
});

我创建了以下文件夹结构:
在此处输入图片说明

这是我的authenticate.js代码:
在此处输入图片说明

这是我的UserModel.js代码:
在此处输入图片说明

这是我的UserRoute.js代码:
在此处输入图片说明

这是我的UserController.js代码:
在此处输入图片说明

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

我需要做什么或更改?

我建议您阅读这篇有关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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM