我正在为我的下一个项目创建一个REST API。我不确定处理资源读/写权限的最佳方法是什么。有些资源可供任何人阅读,其他资源只能通过"登录"用户,其他用户只能被特定用户或管理员阅读。这也适用于写访问。
如何在REST API中存储和验证这些权限。是否只有数据库表存储每个资源的权限或每个用户对每个资源的权限?如果有许多资源需要跟踪,这种方法似乎会变得臃肿,更不用说每个数据库查询都需要JOIN到包含权限的表。
感谢您提前输入!
答案 0 :(得分:0)
您的服务器端存储身份验证和授权数据完全取决于服务器。它可能使用数据库,它可能使用文件,或者不使用上述任何一种。
从RESTful HTTP的角度来看,关键是客户端可能尝试访问某些资源,服务器可能回答401(需要Unathorized / Authentication)或403(Fordbidden)HTTP错误代码强制执行登录/许可要求。
还要记住,并非所有服务都直接映射到一个或多个关系数据库查询。换句话说,计划独立于"数据"实施认证/授权逻辑。如果可以,如果您需要细粒度的访问限制,请尝试在代码中执行此操作,而不是在数据库中加入内容(如果可能的话)。