根據用戶登錄狀態,我想提供來自SAME api端點的不同結果。使用Passport.js部分保護API端點
該用例使用的文章來自相同的API端點。因此,一些文章意味着公開,而一些私人文章。 也有特殊頁面,可以查詢文章列表。
例: API /用品/特/所有
這個API目前應該全部歸還頁數在數據庫中。 但也應該過濾掉私人的結果,如果用戶沒有登錄
隨着Passport.js我只能保護整個API端點,例如:
router.get('/', auth.isAuthenticated(), controller.index);
雖然我喜歡叫從實際函數內auth.isAuthenticated()方法,如:
// Get list of articles
exports.index = function(req, res) {
Article.find(function (err, articles) {
if(err) { return handleError(res, err); }
var titles = [];
var loggedIn = false;
if (auth.isAuthenticated()) {loggedIn = true;} // NOT WORKING
for (var i = 0; i<articles.length; ++i) {
if (articles[i].role === 'loggedIn' && loggedIn) {
titles.push(articles[i].name);
} else if(articles[i].role !== 'loggedIn') {
titles.push(articles[i].name);
}
}
return res.json(200, titles);
});
};
任何想法,如何在控制器中使用Passport.js的,而不是保護整個API終點?