我正在开发一款web应用程序。前端仅通过SOA (称为RESTful架构)与后端交互,后端仅通过JSON向前端发送数据。
我的问题是: 1)通过RESTful接口设计授权是最佳实践吗?或者最好在后端代码中检查授权(user-> role ->权限)?例如:在执行其他API之前,我们是否每次都会询问user /checkPrivilege/{...}?
2)如何在RESTful API中实现3个具有不同功能和UI的方案?例如:我们是否使用api来限制此计划的5个用户?或者我们在后端代码中进行?
发布于 2013-07-20 14:48:38
这是一个老问题,但我还是会回答这个问题,以防有人查到它。
简单的答案是,你可以通过后端来做。您请求的URI不应包含有关用户的任何信息。任何会话/标识数据都应该在HTTP标头中发送。
您的RESTful应用程序接口将始终通过像index.php这样的前端控制器加载。这是您想要引导授权工具以在执行其余代码之前检查每个单页面请求的凭据的地方。
这些凭据至少应该包含发出请求的用户的唯一授权令牌,并且该令牌需要在每个请求中发送(同样,我建议通过HTTP标头)。如果您授予即将到期的临时访问令牌,以防止以后未经授权的访问,则会获得加分。
但为了简单起见,假设您只对每个用户使用一个永久的惟一令牌。然后,您可以将此令牌与有关用户的所有其他数据一起存储,这些其他数据应包括该用户所属帐户的account_id。
因此,对于每个请求,您将:
的权限
但请记住,您的URL无论如何都不应该包含这些信息。RESTful URL是无状态的。
https://stackoverflow.com/questions/14450732
复制相似问题