我有一個Web應用程序和一個RESTful API來與數據庫進行通信。 Web應用程序的前端使用Angular HTTP發佈/獲取/放入後端,後者依次處理身份驗證,發佈/獲取/放入api並返回結果。後端通過JWT將自己認證爲API的管理員,但使用基於cookie的會話對用戶進行身份驗證。所以,API是無狀態的,但Web服務器使用狀態。Node.js中的RESTful API - 通過授權進行篩選
我一直在尋找一些選項,以使用授權機制來過濾基於用戶的查詢結果。例如,我有一個問題終端,我返回只由登錄用戶的公司創建的問題列表。
1 - 我一直在做的Web服務器上(基本上過濾):
router.get('/questions', passportConf.isAuthenticated, function(req, res) {
restler.get(process.env.API_URL + '/questions/?organisation=' + req.user.organisation._id).on('complete', function(questions) {
res.json({
data: questions
});
});
});
2-然而,另一種選擇是將問題用戶組織端點下終結點嵌套,如:
/user/organisation/questions
3-或者基本上我可以把用戶放在對API的請求中,這個請求會根據請求主體上的用戶組織進行過濾。最後,我可以跳過Web服務器上基於cookie的會話身份驗證,直接從前端向API發送請求,並使用JWT驗證用戶身份(這與第一點中的問題過濾方式相同)。
我是相當新的Node.js的,我想知道如果有一個模塊或一種常見的做法,以處理1或4
我認爲restler是路由器?或者是nodejs應用程序的名稱? – sarker306
@ sarker306它是一個HTTP客戶端庫。 https://github.com/danwrong/restler該塊位於路由器本身中,將組織信息添加到對API所做的請求中。 –