REST中的OAuth令牌和会话

另一分钟我读了一篇关于OAuth的文章。 它特别描述了一系列请求期间客户端和服务提供者之间交换的令牌。

文章还提到OAuth作为授权层在RESTful API中获得了显着的普及。 据我了解,REST应该保持完全无状态。

问题:这个重复的令牌不会交换鱼雷REST的“无状态”原理吗? 恕我直言,令牌可以被看作是一种会话ID,不是吗?

OAuth令牌显式为会话标识符,OAuth令牌协商协议中的请求之间的交互不是无状态的,因为请求必须以特定的顺序执行,并且它们确实需要在服务器上进行每客户端存储,因为您需要跟踪他们被发布。 所以是的,OAuth确实违反了RESTful架构的严格原则。

不幸的是,真实世界TM要与我们需要做的事情相抗衡,比如允许应用程序代表个人进行身份validation,而不要求他们的密码,这个OAuth相当不错。 没有这种状态就不可能实现类似的安全authenticationscheme。 事实上,OAuth(1.0a)所要求的变化之一就是为令牌协商协议添加更多的状态以减轻安全风险。

那么,这是否会破坏REST的无状态原则? 是。 那很重要吗? 不,除非你住在象牙塔里:-)

身份validation是在处理Web交互时必须以某种方式进行跟踪的状态。 最终,如果你的应用程序是宁静的,服务器必须能够跟踪每个用户的“身份validation状态”,不幸的是,需要某种规避HTTP的底层无状态本质和任何额外的传输/技术(如REST)它。

因此,为了开发任何一种authentication的应用程序,一个国家的原则必须是在某个地方的鞋子angular,如果这恰好是在REST之上的OAuth,这是必然的!