我有一个Node.js Express护照joi restful api。尝试访问路线时...首先验证输入(正文或查询)或检查护照要求更好吗?
所以这个:
router.route('/signup')
.post(validateBody(schemas.signupSchema), passportSignup, controllerSignup.signup);
router.route('/login')
.post(validateBody(schemas.loginSchema), passportLogin, controllerLogin.login);
router.route('/search')
.get(validateQuery(schemas.searchSchema), passportJWT, controllerSearch.search);
...还是这个?
router.route('/signup')
.post(passportSignup, validateBody(schemas.signupSchema), controllerSignup.signup);
router.route('/login')
.post(passportLogin, validateBody(schemas.loginSchema), controllerLogin.login);
router.route('/search')
.get(passportJWT, validateQuery(schemas.searchSchema), controllerSearch.search);
首选哪个版本?
答案 0 :(得分:1)
这并不重要,因为它们都是中间件,哪个先失败都没有关系。但是,首先进行护照身份验证是一个更好的主意,为什么如果用户未正确进行身份验证,甚至还要处理数据。