首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于授权、计划功能控制的RESTful应用编程接口

用于授权、计划功能控制的RESTful应用编程接口
EN

Stack Overflow用户
提问于 2013-01-22 10:43:33
回答 1查看 79关注 0票数 1

我正在开发一款web应用程序。前端仅通过SOA (称为RESTful架构)与后端交互,后端仅通过JSON向前端发送数据。

我的问题是: 1)通过RESTful接口设计授权是最佳实践吗?或者最好在后端代码中检查授权(user-> role ->权限)?例如:在执行其他API之前,我们是否每次都会询问user /checkPrivilege/{...}?

2)如何在RESTful API中实现3个具有不同功能和UI的方案?例如:我们是否使用api来限制此计划的5个用户?或者我们在后端代码中进行?

EN

回答 1

Stack Overflow用户

发布于 2013-07-20 14:48:38

这是一个老问题,但我还是会回答这个问题,以防有人查到它。

简单的答案是,你可以通过后端来做。您请求的URI不应包含有关用户的任何信息。任何会话/标识数据都应该在HTTP标头中发送。

您的RESTful应用程序接口将始终通过像index.php这样的前端控制器加载。这是您想要引导授权工具以在执行其余代码之前检查每个单页面请求的凭据的地方。

这些凭据至少应该包含发出请求的用户的唯一授权令牌,并且该令牌需要在每个请求中发送(同样,我建议通过HTTP标头)。如果您授予即将到期的临时访问令牌,以防止以后未经授权的访问,则会获得加分。

但为了简单起见,假设您只对每个用户使用一个永久的惟一令牌。然后,您可以将此令牌与有关用户的所有其他数据一起存储,这些其他数据应包括该用户所属帐户的account_id。

因此,对于每个请求,您将:

  1. 从HTTP头中获取用户令牌
  2. 根据该令牌查找用户。
  3. 如果找到该用户,则使用其account_id查找其个人帐户与
  4. 关联的主帐户如果匹配,则授予其访问

的权限

但请记住,您的URL无论如何都不应该包含这些信息。RESTful URL是无状态的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14450732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档