2

我一直在寻找这个问题的答案,但看起来没有人这样做。假设您正在设计一个 javascript REST 客户端,并且想要创建一个登录页面。当然,登录后您将获得身份验证。

因此,以下对 REST API 的请求将取决于您当前的用户 ID,该用户 ID 应按照 RESTful 方式存储在客户端。

我的问题是如何使用 Javascript 存储这个“会话”信息。我研究过 cookie,但在我看来,纯文本太多让人无法信任。同样使用 cookie 可以在其中存储一个映射到服务器上用户信息的会话 id,但这违反了 REST 的无状态概念。

解决这个问题的最佳方法是什么?

4

1 回答 1

1

我们还在构建类似的架构,其中 RESTful API 将由 javascript 客户端访问。

我们将使用客户端凭据对客户端进行身份验证并生成身份验证令牌并将其发送给客户端。客户端将其存储在 cookie 或本地数据存储中。此客户端对 API 的进一步请求将使用 HTTP 授权标头发送,并将该令牌包含在标头中。我们将在 API 端对给定令牌的请求进行授权,一旦通过身份验证,请求就会被提供。

直到 n 除非您不访问服务器端的 cookie 信息,否则我认为这不会违反 REST 的无状态原则,因为我们不会在服务器上维护客户端的任何状态(我们不会将其绑定到任何服务器)。关于使用令牌的身份验证过程,我不认为我们在这里绑定服务器和客户端,因为我们有多个服务器并使用负载均衡器,并且该请求仍然可以由任何服务器提供服务(类似于 Google api)。

注意:我们使用 HTTPS 协议执行此操作,因此我们确信所有这些通信都是安全的。

于 2013-05-05T02:37:59.303 回答