0

我正在创建一个RESTful api,但我从概念上不了解如何验证不是 POST 的 http 请求。

例如,如果我收到一个 GET 请求,我应该返回一个对象列表,但如果请求来自在我的站点上注册的人,我只想用该列表进行响应。使用 POST,我将获取用户名并与请求一起传递,但是 GET、DELETE 和 PUT 呢?

我在客户端使用 Django 服务器端和 Java (Android)。我可能会使用TastyPie,但我仍然需要进行身份验证。

谢谢!

4

4 回答 4

0

API 调用的身份验证与您使用的 HTTP 方法无关。

以这种方式考虑您的 API 的功能性工作流程:

  1. 在您可以发送常规 API 调用之前,发送调用登录 / 生成 API 登录密钥
  2. 收到 API 调用后,立即运行身份验证检查功能以验证是否允许他们使用该调用。
  3. 如果通过身份验证,请继续。如果未通过身份验证,则会出现一些错误代码和消息。
  4. 如果继续,执行正常功能并完成。
于 2013-08-15T21:52:10.300 回答
0

授权由(恰当命名的)HTTP Authorization 标头处理。

Authorization 标头包含凭据/令牌/秘密代码/等,无论如何获得,服务器都可以使用它们来满足其身份验证和授权要求。

授权头可以与任何 HTTP 请求一起发送。

随意查找 HTTP BASIC 或 HTTP DIGEST 身份验证作为如何使用 Authorization 标头的示例。还可以考虑查看 Amazon Web Services 如何使用 Authorization 标头以获得更复杂的示例。

于 2013-08-15T22:11:47.347 回答
0

当用户第一次登录时发出 POST 请求,并在服务器上为该用户生成会话代码并将其发送到浏览器。现在,您可以通过在每次查询时将其放入 GET 查询 url 从浏览器发送该会话代码,因此您可以在服务器上对用户进行身份验证。

于 2013-08-15T21:23:47.703 回答
0

POST仅当您的服务器通过application/x-www-form-urlencodedmultipart/form-data编码的 HTTP 请求使用基于表单的身份验证时才需要,而不是通过 HTTPAuthorization标头使用基于 HTTP 的身份验证。 GET请求可以使用基于 HTTP 的身份验证。

于 2013-08-15T21:32:00.533 回答