【发布时间】:2016-06-29 02:05:01
【问题描述】:
我正在使用 node.js 创建一个简单的 Rest Api,并使用 jwt 令牌保护它,我已经设置了 passport 和 passport-jwt 来验证哪个工作正常,如果 jwt 令牌有错误或它不存在,护照将发送 401 和“未经授权”的正文。我知道如何更改路由的错误以通过执行以下操作发回我想要的自定义错误消息;
router.route('/test')
.put(function(req, res, next) {
passport.authenticate('jwt', { session: false }, function(err, user, info) {
if (err) { return next(err); }
if (!user) { return res.send("Custom Unauthorised").end(); }
return res.send("Test Route Accessed").end();
})(req, res, next);
});
我有大约 20 条路线,我将它们命名为类似于以下内容;
router.route('/books/:id/authors').get(passport.authenticate('jwt', { session: false }), myRoutes.books.authors);
现在您会注意到我将资源特定的路由存储在他们自己的文件(即 myRoutes.books)中,所以我的问题是,有没有一种方法可以将自定义回调作为不需要对路由文件进行重大重组的中间件?
干杯
【问题讨论】:
标签: node.js express passport.js jwt