Web services 休息服务

Web services 休息服务,web-services,session,rest,web,Web Services,Session,Rest,Web,我正在开发支持客户端会话持久性的小型REST服务。正如您所知,由于REST,我们不能在服务器上存储任何客户端数据,数据必须存储在客户端,客户端的请求必须是自给自足的。那么…我们如何存储客户端会话呢?通过互联网搜索,我找到了一些实现这一点的方法。例如:我们向客户端发送包含客户端id(nick…等)的加密令牌,如token=AES(id,secretKey);然后,我们使用密钥授权用户对服务器上的每个请求解密令牌。有人能提出什么建议吗?也许还有其他好方法可以实现同样的功能。哪种加密算法更适合这种情况

我正在开发支持客户端会话持久性的小型REST服务。正如您所知,由于REST,我们不能在服务器上存储任何客户端数据,数据必须存储在客户端,客户端的请求必须是自给自足的。那么…我们如何存储客户端会话呢?通过互联网搜索,我找到了一些实现这一点的方法。例如:我们向客户端发送包含客户端id(nick…等)的加密令牌,如token=AES(id,secretKey);然后,我们使用密钥授权用户对服务器上的每个请求解密令牌。有人能提出什么建议吗?也许还有其他好方法可以实现同样的功能。哪种加密算法更适合这种情况?谢谢

这一切归结于你对这个问题的回答:为什么你首先需要一个“会话”概念

如果您需要确保客户端传递代表一组凭据的Cookie,请考虑将客户端作为HTTPS身份验证头传递给每个请求。

如果您需要遵循一些粘性路由规则(以确保客户端的请求被发送到特定的服务器),请考虑利用这个机会来摆脱该架构直截了当,因为这是扼杀未来可伸缩性的最快方式。相反,请随意选择服务器

如果您绝对必须路由到特定节点,请尝试要求客户端传递足够的标识数据,以便您可以使用它将客户端散列或切分到特定的“泳道”。例如,您可以根据他们的用户名进行拆分。

您提到:

正如您所知,由于REST,我们无法在服务器上存储任何客户端数据 服务器,数据必须存储在客户端,客户端的请求必须 自给自足

REST并不是说不能在服务器上存储客户机数据;它只是说你不应该在那里存储应用程序状态,你可以把它看作是“这个客户在试图做的事情”。
如果您主要是想了解经过身份验证的用户的概念,那么标准的登录cookie就可以很好地工作,并且不会“无效”。

这些持久化的客户端会话您想要实现什么?这仅仅是身份验证过程的性能优化吗?这是我找到的唯一合乎逻辑的解释。希望它是正确的