как получить JSON маршрута без выборки - PullRequest
0 голосов
/ 31 января 2019

У меня есть маршрут, который возвращает мне json с пользовательским грантом.

router.get('/test', function(req, res,next ) {

    var token = req.cookies.auth;
    if (!token) return res.status(401).send({ message: ""});

    jwt.verify(token, config.secret, function(err, decoded) {
      if (err) return res.status(500).send({ message: "Failed to authenticate token."});
      User.findById(decoded.id,function(err,user){
          if (err) return res.status(500).send({ message: "problmes found user, sorry "});

          if(!user) return res.status(404).send({message: "user not found "});
          res.status(200).send({message:user.role});
      });

    });
  });

Я хочу перехватить ответ json в переменной для другого маршрута, чтобы авторизовать действие.

router.get('/', function(req, res, next) {

  if (jsonresponse == grant ){
  var allMusique;
  var idMaxMusique;
  MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      var dbo = db.db("projet_node");
      dbo.collection("musiques").find({}).toArray(function(err, result) {
          if (err) throw err;
          allMusique = result;
          var size = allMusique.length-1;
          idMaxMusique = parseInt(result[size].id)+1;
          res.render('musiques', { resultat: allMusique, idMax: idMaxMusique });
      });
      });}
      else{
          res.render('unauthorized');
      }
});

1 Ответ

0 голосов
/ 31 января 2019

создать Controllers / middlewares / authenticate.js файл и написать следующий код

const jwt = require('jsonwebtoken')
module.exports = (req, res, next) => {
  const token = req.headers['token'] || req.body.token || req.cookies.token;
  if (token) {
    try {
      req.decoded = jwt.verify(token, JWT_SECRET_KEY) 
      // JWT_SECRET_KEY -> config.secret
      next()
    } catch (err) {
      res.status(403)
         .send({ success: false, message: 'Failed to authenticate token.' })
    }
  } 
  return res.status(403).send({
    success: false,
    message: 'No token provided.'
  })
}

создать Controlller / UserController.js файл

exports.getUser = function (req, res) {
  // Perform Your requirement of code 
  // return Something
}
exports.getUserTest = function (req, res) {
  // Perform Your requirement of code 
  // return Something
}

В вашем маршруты / маршруты.js файл

const authenticate = require('./Controllers/middlewares/authenticate');
const UserController = require('./Controllers/UserController');

// Routes with authentication. User must be login for get this routes
 router.get('/getUser', authenticate, UserController.getUser);  
// Routes without authentication. No need to login
 router.post('/getUserTest', UserController.getUserTest);

Наиболее важные требуют ('PathOfFile') правильно или просто всегда дважды проверяют путь к файлуи папка в требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...