node js jwt如何将令牌传递给其他路由以便稍后检查记录的用户信息

时间:2017-08-20 08:40:42

标签: node.js express mongoose jwt

我正在创建一个应用程序来学习自我。所以目前我需要使用jsonwebtoken对用户进行身份验证,我知道如何创建一个令牌来验证用户身份。所以实际上我需要知道如何通过使用用户在登录系统时创建的令牌来检索记录的用户的信息。我到处寻找一个好的答案,但我找不到一个好的答案

apiRoutes.post('/authenticate', function(req, res) {

// find the user
  User.findOne({
    name: req.body.name
  }, function(err, user) {

    if (err) throw err;

    if (!user) {
      res.json({ success: false, message: 'Authentication failed. User not found.' });
    } else if (user) {

      // check if password matches
      if (user.password != req.body.password) {
        res.json({ success: false, message: 'Authentication failed. Wrong password.' });
      } else {

        // if user is found and password is right
        // create a token
        var token = jwt.sign(user, app.get('superSecret'));

        // return the information including token as JSON
        res.json({
          success: true,
          message: 'Enjoy your token!',
          token: token
        });
      }
    }
  });
});

这是用户登录和令牌创建过程

以下路由器如果用户登录系统并创建了令牌,我需要检索所有用户信息

apiRoutes.get('/users', function(req, res) {
  if(!loggedinUser){
    //throw err
}
else {
  User.find({}, function(err, users) {
    res.json(users);
   });
  });
}

所以请帮助我理解这一点,我希望你们能为我提供一个很好的答案

谢谢

2 个答案:

答案 0 :(得分:2)

生成授权令牌后,您需要通过客户端在所有请求中发送该令牌。 在服务器端,您需要在此实现身份验证中间件,您将检查身份验证令牌。并进一步处理该请求 检查此链接 How to use the middleware to check the authorization before entering each route in express?

答案 1 :(得分:-1)

将用户登录令牌添加到req.session.token,然后在jwt middle ware中进行检查。