如何验证不是POST的http请求?

时间:2013-08-15 21:18:17

标签: http rest authentication

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

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

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

谢谢!

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

仅当您的服务器通过POSTapplication/x-www-form-urlencoded编码的HTTP请求使用基于表单的身份验证,而不是通过HTTP {{1}使用基于HTTP的身份验证时,才需要

multipart/form-data标头Authorization个请求可以使用基于HTTP的身份验证。

答案 2 :(得分:0)

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

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

  1. 在发送常规API调用之前,发送对login / generate API登录密钥的调用
  2. 收到API调用后,立即运行身份验证检查功能,以验证他们是否可以使用该呼叫。
  3. 如果经过身份验证,请继续。如果没有经过身份验证,请输入一些错误代码和消息。
  4. 如果继续,请执行正常功能并完成。

答案 3 :(得分:0)

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

Authorization标头包含服务器可用于满足其身份验证和授权要求的凭证/令牌/密码/等等,无论如何获得。

可以使用任何HTTP请求发送授权头。

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