我有如下的终点:
app.post(api + '/channels/:channel_id/albums', user.ensureAuthenticated, album.create);
app.get(api + '/channels/:channel_id/albums/published', user.ensureAuthenticated,album.publishedAlbums);
app.get(api + '/channels/:channel_id/albums', user.ensureAuthenticated, album.findAll);
这一切都运行正常,但是将user.ensureAuthenticated放在每个端点让我感到很烦恼,有没有什么方法可以让user.ensureAuthentication立刻为所有人设置?
对于ex:Laravel有像beforeAuth这样的选项,你可以创建一个if和inside,你把所有要保护的端点放在一起。
喜欢前:
if(user.ensureAuthenticated){
// endpoints declariations
}else{
// redirect to login
}
感谢名单
答案 0 :(得分:1)
你会在这里找到答案: Only allow passportjs authenticated users to visit protected page
特别是这种代码:
//checks to be sure users are authenticated
app.all("*", function(req, res, next){
if (!req.user)
res.send(403);
else
next();
});
所有端点都将受到保护。