此问题越过我的脑海后,我看到这篇文章: “共同REST的误区:会话无关“

如果会话的确在RESTful应用程序气馁。你会如何处理这样的应用程序许可证。我特别提到并发许可证模式,而不是命名许可证。即,客户购买许可证X,这意味着应用程序可以允许多达X用户在同时被记录。这意味着应用程序必须持有状态中的用户当前登录

我知道我可以创建一个名为许可资源,这将设置一个cookie或生成一个唯一的ID,然后客户端必须与每个请求发送。但它与创建会话,对吧?

如果我将采用无状态的方法,并要求客户为每个请求创建一个认证令牌如何将应用程序知道什么时候消耗和释放许可证客户端?

是否有其他?具体地更RESTful的替代?

有帮助吗?

解决方案

让我尝试点为您连接,假设我正确地解释你的问题。 您发布的链接有一个有效的答案,每个请求应使用HTTP认证。如果您需要许可证的概念,以维护用户的某种状态,你可以最有可能链接到用户。你有一个(验证)用户名去了。你只需要调用该控制器为每个请求,并保存其状态。在那里,你有你的会话。

曲奇输入不应该被信任任何关键信息,但可以像一个安全令牌额外的验证是非常有用的。我认为加上一个随机安全令牌领域到您的现场环节将是宁静的办法了这一点。它应与“会话”期满当然。

其他提示

您可能要考虑推动执照处理的担忧下的基础设施堆栈一个级别。有点像一个面向方面编程(AOP)的方法,如果你会的。而不是在应用层处理它,也许,你可以推到Web服务器层。

不知道你的基础设施的细节,这是很难给出具体的建议。使用* nix的平台为例,许可处理逻辑可以被实现为为Apache HTTP服务器的模块。

本方法促进跨越基础架构堆栈关注点分离。它允许每层专注于它是什么意思。应用层并不需要担心许可可言,使其严格专注于内容,这反过来又使该URL的清洁和“REST风格”。

如果您的许可是基于并发用户,执行HTTP摘要是微不足道的,而且会让你只启用并发登录的最大数目。消化具有规定用于使过期数据,以便会话可以是超时。

认证状态是保持由HTTP authetnication和无处,beause它是透明的和ubiquituous。

也许做许可证的更RESTful的办法是,以限制请求处理,而不是并发会话数的比率。跟踪在最后一个小时请求的数量,如果超过客户已支付的数量,服务于503 Service Unavailable响应,以及一些文本建议用户稍后再试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top