3

我正在通过开发一个单独的 REST API 服务器和一个 Web 应用服务器来创建一个“API 即服务”,该服务器只是提供一个使用 REST API 的网站。Web 应用程序充当 API 的客户端。Web 应用程序是一个简单的仪表板,允许用户登录并查看他们的 API 使用情况并查看他们的 API 密钥和密钥,以便他们可以安全地访问 API。

我计划使用类似 AWS 的共享密钥来使 API 的客户端能够访问受保护的资源。

但我感到困惑的一件事是,当用户登录仪表板网站时,这应该由 REST API 还是由 Web 应用服务器处理。

如果要由 REST API 端点处理,API 服务器如何维护请求之间的会话状态。API 如何知道用户是否登录?是否可以在 API 服务器上存储会话状态,即使它应该是无状态的。其他类似 REST 的 API(如 twitter)如何做到这一点?

4

1 回答 1

2

ReSTful 安全性在服务器端处理;基本上:

  • 当客户端请求未经身份验证的资源时,服务器返回 401 状态码
  • 每个客户端调用都必须通过 WWW-Authenticate 标头提供身份验证
  • 成功登录后,此标头可以在客户端存储在 cookie 中

你会在这本书中找到很大的帮助:ReSTful WebServices Cookbook。查找有关基本/摘要身份验证的说明。

这是一个很好的介绍,带有一个实时工作示例。

于 2012-10-12T15:34:12.983 回答