围绕 REST 和安全性主题有许多关于 SO 的优秀问题(和答案)。许多人说“纯粹主义者不会喜欢这个,但是等等等等”......然后其他人说“你不应该那样做,因为等等等等”。
但是我还没有看到“纯粹主义者”针对以下情况提出的解决方案。所以我的问题是 - 以下场景的“纯 RESTful 解决方案”是什么?
简单的场景...
想象一下建立一个数据库/网站,让用户管理他们最喜欢的食谱。该网站公开了一个 RESTful API,以便用户可以从他们想要编写的自定义程序(利用此 API)中查询和操作他们的列表。
因此,用户“A”有 3 个最喜欢的食谱,ID 分别为“1”、“2”和“3”。
用户“B”有 2 个最喜欢的食谱,ID 为“4”和“5”。
我们需要确保如果用户 A 向其发送DELETE
命令/Recipes/4
,他将得到Forbidden (403)
响应。
我平时会做什么...
我通常会做的是让他们首先调用一种身份验证方法,然后向他们发送某种有效期为 30 分钟左右的身份验证令牌。通常,此令牌将通过 cookie 传递。
什么是纯溶液?
纯 REST 解决方案是让他们将其作为查询字符串中的变量传递吗?饼干是魔鬼吗?令牌是否应该用作 URL 的一部分(而不是查询字符串参数)?还有什么可以清楚地回答这个问题吗?