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/