授权RESTful服务的实际示例?

Tim*_*uri 6 security rest authorization restful-architecture

关于REST和安全性的主题,有许多关于SO的优秀问题(和答案).许多人说"纯粹主义者不喜欢这样,但是等等等等......"然后其他人说"你永远不应该这样做,因为等等等等".

但我还没有看到"纯粹主义者"为以下情况提出建议的解决方案.所以我的问题是 - 以下场景中的"纯RESTful解决方案"是什么?

简单的场景......

想象一下,建立一个数据库/网站,让用户管理自己喜欢的食谱.该网站公开了RESTful API,以便用户可以从他们想要编写的自定义程序(利用此API)查询和操作他们的列表.

因此,用户"A"有3个最喜欢的食谱,ID为"1","2"和"3".

用户"B"有两个最喜欢的食谱,ID为"4"和"5".

我们需要确保如果用户A发送DELETE命令/Recipes/4,他将得到Forbidden (403)响应.

我通常会做什么......

我通常会做的是让他们首先调用一个身份验证方法,然后向他们发送一些有效30分钟左右的auth-token.通常,此令牌将通过cookie传递.

什么是纯粹的解决方案?

纯REST解决方案是让它们将它作为查询字符串中的变量传递吗?饼干是魔鬼吗?令牌是否应该用作URL的一部分(而不是查询字符串参数)?还有其他东西可以清楚地回答这个问题吗?

Dar*_*ler 4

在授权标头中传递令牌。这就是它的设计目的。请参阅http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p7-auth-12.html