护照身份验证不适用于节点中的multer

时间:2020-01-04 23:09:21

标签: javascript node.js passport.js multer

我正在尝试使用multer上传图像。但是,我要在用户上载图像之前对其进行身份验证。我的代码在下面,passport.authenticate不起作用。我无需登录即可上传。

const router = express.Router();
const upload = multer({ dest: 'uploads/' })

  router.route("/", passport.authenticate("jwt", { session: false }))
  .post(
    upload.single("image"),
    (req, res, next) => {.....})

但是,身份验证以这种方式工作,但是我不能使用multer。

router.post(
  "/",
  passport.authenticate("jwt", { session: false }),
  (req, res) => {...})

2 个答案:

答案 0 :(得分:1)

router.route()仅接受第一个路径参数,因此第二个参数(passport.authenticate())被静默忽略。 您可以验证。

router.route("/", function(req,res,next){console.log('in 2nd param');next()})
.post()

我认为您可以像下面那样使用混合器。

router.post("/",
            passport.authenticate("jwt", { session: false }),
            upload.single("image"),
            (req, res) => {...})

答案 1 :(得分:0)

以这种方式在发布路线内使用multer,从而可以对路由器进行身份验证

router.post(‘/‘, passport , (req, res) =>{

})