0

我正在尝试使用Recess开发一个简单的 Web 服务,这是一个旨在易于使用且本质上是 RESTful 的 Web 框架。我发现在 Recess 中使用 CRUD 功能非常容易。我在 MySQL 数据库中创建了一个带有后端的模型,并发现已经可以使用 REST API。

这很好,但问题是我没有用户身份验证,这几乎使我上面描述的非常好的功能完全无用。在现实世界的应用程序中,访问特定于用户的资源需要身份验证。例如,假设我正在开发一个简单的“待办事项”应用程序(顺便说一句,我不是)。用户对其待办事项列表中的其他人不感兴趣,因此服务需要识别用户是谁,以便提供正确的数据。此外,不应允许用户读取、删除或更新其他人的资源。

这通常通过登录系统完成。但是对于 REST API,用户如何进行身份验证?每次发出请求时,客户端是否需要提供用户的凭据(如用户名和密码)?怎么能避免呢?通常,可以使用 cookie,但这可能不是一种好的做法,因为并非所有客户端都必须是 Web 浏览器。但是,如果我们要模拟 cookie 的功能,我们如何传输“cookie”内容(通常,这是在 HTTP 标头中完成的)?最后,如何将这些问题的解决方案集成到 Recess 的内置 REST 功能中?

如您所见,我对开发 REST API 还很陌生,因此欢迎任何建议和指点。

4

1 回答 1

3

RESTful 系统利用已经可用的现有技术,而不是重新实现它们。而且由于 HTTP 已经包含Basic Authentication形式的身份验证支持,因此您应该重新使用它。这是一种广泛支持的机制,供客户端传输其凭据。

是的,客户端应该在每个请求中发送他们的凭据。Cookies 适用于不喜欢重复输入密码的人类客户,这里不是这种情况。Cookie 意味着您的服务器上的会话状态,这会使可伸缩性变得非常困难。

这个网站上可能有一百个关于 RESTful 身份验证的问题。我鼓励您搜索并阅读更受欢迎的内容。

于 2012-10-05T03:32:07.700 回答