RESTful表示是否应该依赖于用户权限?

时间:2013-12-01 15:00:39

标签: rest restful-authentication hateoas

当授权渗透到资源表示中时,我认为它不是RESTful。当前用户的身份是严格的客户端状态,因此它不应影响资源的表示,除非与请求一起发送了识别因素或用户ID或权限详细信息。

如果你正在使用会话,这将是该过程的有状态部分:例如,如果你想阅读某人的个人资料页面,你将有2个表示:users/123users/123?editable=true。这取决于会话的权限是否可以选择可编辑的权限。应该在哪里显示可编辑的链接?如果只有在具有权限的情况下它出现在/users/123表示中,则它违反了服务的无状态约束,因为资源的表示将取决于当前会话的权限。 :S因此,如果您希望为每个用户提供不同的表示,那么您必须在每次请求时发送有关此内容的信息。

有人有一个很好的解决方案吗? 是否可以使用会话并将有状态部分与服务分开?

是否可以通过创建响应将权限相关部分与资源相关部分完全分开? (在这种情况下,即使使用会话,资源相关部分也可以很好地维护,并且缓存它会容易得多。)

1 个答案:

答案 0 :(得分:0)

  

RESTful表示是否应该依赖于用户权限?

  

当授权渗入网络时,我认为它不是RESTful   资源的表示。当前用户的身份是   严格的客户状态,所以它不应该影响表示   除了识别因素或用户ID或之外的资源   权限详细信息随请求一起发送。

它是客户端状态,但您可以随每条消息发送它,因此它不会违反无状态约束。

  

是否可以使用会话并将有状态部分与   服务?

不允许服务器端会话,因为它们会违反无状态约束。