我有一个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所做的请求中。 –