REST API-如何实施用户特定的授权?

瑞安·N

因此,我目前正在使用NodeJS,ExpressJS和MySQL作为数据库为Web应用程序学习/构建REST API后端服务器。我的问题是关于实现授权以确保用户A不访问或编辑属于另一个用户的数据的最佳方法。请注意,我了解有很多实施基于角色的授权的示例(即用户组与管理员组等),但这不是我要的。相反,我如何针对用户访问的数据授权用户?

我可能对此考虑过多,甚至没有必要。我应该只检查每个SQL查询中的数据是否属于用户,但是我想问一问是否有中间件或策略体系结构可以解决这个问题,甚至可以通过缓存进行授权。

我能想到的唯一解决方案是,每个SQL查询都返回带有结果的用户ID,然后我创建一个服务来检查ID是否匹配的每个结果。如果是,则继续。如果不回滚,则查询并返回未授权错误。这个可以吗?

我非常感谢您的建议,帮助,以及如果您能为我指明正确的方向。

提前谢谢了。

4ndt3s

将userId(或ownerId)保存在每个表中,并创建一个中间件,其中每个数据库访问方法都需要使用userId作为参数,例如:

readOne(id, userId) {
    // implements SELECT * FROM example WHERE id = id AND userId = userId
}

updateOne(id, data, userId) {
    // implements UPDATE example SET data = data WHERE id = id AND userId = userId
}
...

出于安全原因,切勿发送“您不是所有者,存在请求的数据”作为响应。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章