我试图在MEAN.js中包含一个中间件(passport-http-bearer),但它使用的路由语法与Express 4不同。
Express API sytnax是:
app.get('/', function(req, res){
res.send('hello world');
});
在MEAN.js中,路由定义如下:
app.route('/articles')
.get(articles.list)
.post(users.requiresLogin, articles.create);
如何在MEAN.js路由器中包含中间件(在我的情况下,使用passport-http-bearer来检查令牌)?
http-bearer作为中间件的示例实现是:
app.get('/profile',
passport.authenticate('bearer', { session: false }),
function(req, res) {
res.json(req.user);
});
我应该如何在MEAN.js中执行此操作?
答案 0 :(得分:2)
对于那些在这里试图弄清楚如何做到这一点的人来说,这是如何做到的:
app.route('/articles')
.get(passport.authenticate('bearer', { session: false }), articles.list)
.post(passport.authenticate('bearer', { session: false }), articles.create);
或者为了让它看起来更漂亮,整个身份验证功能可以放在users.authorization.server.controller.js
中并称为woith:
app.route('/articles')
.get(users.requiresToken, articles.list)
.post(users.requiresToken, articles.create);