MEAN Stack – 仅在某些REST方法上使用带有express-restify-mongoose的jwt

我对这些东西都很陌生,所以请耐心等待。

我尝试使用MEAN堆栈来创buildREST API – 为了使事情变得简单,我试图使用这个:

https://github.com/florianholzapfel/express-restify-mongoose

运行时,它对我来说是完美的工作:

restify.serve(应用程序,酒店);

– >应用程序当然是expression,酒店是我的mongoose.model指向我的酒店架构。

它也正在处理我的“令牌逻辑”,我可以使用类似下面的方法来保护所有restify的URL:

除非({path:['/ auth','/']}));

我的问题是 – 我如何保护一些REST方法与我的令牌逻辑(POST,PUT,DELETE)在例如'/ api / hotels' – >我想像GET这样的方法是公开的,但不是POST,PUT和删除。

可能吗? 非常感谢您的帮助!

答案是:

像这样创build一个中间件:

function AllCanGetIt(req, res, next) { if(req.method === 'GET') { return next(); } return expressJwt({ secret: 'secretstring' })(req, res, next); }; 

然后做:

  restify.serve(app, hotels, {middleware: AllCanGetIt}); 

用“express-restify-mongoose”:“^ 2.0.0”你应该用“preMiddleware”

然后做:

 restify.serve(app, hotels, {preMiddleware: AllCanGetIt}); 

更多信息: https : //florianholzapfel.github.io/express-restify-mongoose/