首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST超媒体:应该根据用户的权限过滤操作吗?

REST超媒体:应该根据用户的权限过滤操作吗?
EN

Stack Overflow用户
提问于 2014-01-08 22:03:19
回答 2查看 338关注 0票数 1

根据Roy的Hypermedia作为应用程序状态(Hypermedia)的引擎,每个资源应该与可以在该资源上执行的操作(或链接)列表相结合。

如果这些操作包含在实体中(用于使用Json的links属性),我如何告诉用户代理,通过身份验证的用户无法使用特定的选项?

后端可以进行过滤,但是相同的资源URL可能有不同的表示形式,这取决于经过身份验证的用户。这似乎并不是对休息和缓存友好的。

另一种选择是保留所有链接,并让用户代理在认证用户不可用的操作不可用时接收403 Forbidden。这对用户来说可能很烦人。

在保持REST友好的同时,如何通知用户代理可用的操作时,这些操作可以根据身份验证的用户进行更改?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 02:43:16

你是对的。根据用户权限创建不同表示形式并不是特别友好的缓存。是否有可能将权限变体划分为几个类别?例如资源-低安全性,资源-中度-安全资源-高安全性

有时这种方法是可能的,有时是不可能的。需要考虑的另一个方面是缓存对于这个特定资源是否至关重要。也许是现在?

此外,不需要等到用户单击链接才能确定用户是否有权限遵循链接。客户端可以对背景中的链接执行选项请求,以发现哪些链接可用,并动态禁用不可访问的链接。

这个问题没有一个单一的答案。根据不同的需求,不同的解决方案将在不同的情况下起作用。

票数 1
EN

Stack Overflow用户

发布于 2018-11-01 11:17:56

假设REST是一个供机器人浏览的网站。

网站是否返回包含不允许查看的链接的HTML资源(页面)?

不管它有没有,它都不会改变网站的“超级媒体”。

但是,相同的资源URL可能有不同的表示形式,这取决于经过身份验证的用户

考虑一下网站的主页也是如此。资源是概念性的,主页是概念,看起来是变化的。

web如何处理为登录和注销视图缓存页面?

第一种方法是阻止对这些资源的缓存;并不是所有的东西都必须是可寻址的,约束就是可以相应地标记资源。

第二种是使用控制语义,如果REST使用HTTP,则使用头。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary

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

https://stackoverflow.com/questions/21007540

复制
相关文章

相似问题

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