Wednesday, 12 April 2017

req.body is empty when apply middleware to a GET route

I write a router for authentication and a middleware to parse redirect parameter and save in session. But when parsing query parameters, both req.body and req.params are empty.

router.js

/* Route for Facebook login. This is the only login option for now. */

var router = require('express').Router();
var passport = require('passport');
var redirect = require('../middlewares/redirect');

/**
 * facebook oauth
 */
router.get('/facebook', passport.authenticate('facebook'), redirect.parse());

redirect.js

/**
 * save the redirect parameter to session
 *
 * @param {Object} options options for the middleware
 */
module.exports.parse = function (options) {
  return function (req, res, next) {
    console.log(req);
    console.log(req.body);
    console.log(req.params);
    if (req.body.redirect) {
      req.session.redirect = req.body.redirect;
      console.log(req.body.redirect);
      console.log(req.session.redirect);
      req.session.save();
    }
    next();
  };
};



via Guo Yunhe

No comments:

Post a Comment