rest - 基本 HTTP 和不记名 token 身份验证

标签 rest curl basic-authentication access-token restful-authentication

我目前正在开发一个 REST-API,它受 HTTP-Basic 保护,适用于开发环境。由于真正的身份验证是通过 token 完成的,我仍在尝试弄清楚如何发送两个授权 header 。

我已经尝试过这个:

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Authorization: Bearer mytoken123"

例如,我可以禁用我的 IP 的 HTTP 身份验证,但由于我通常在具有动态 IP 的不同环境中工作,这不是一个好的解决方案。那么我错过了什么吗?

最佳答案

尝试使用此方法在 url 处推送基本身份验证:

curl -i http://username:password@dev.myapp.com/api/users -H "Authorization: Bearer mytoken123"
               ^^^^^^^^^^^^^^^^^^

如果以上方法不起作用,那么您与此无关。因此,请尝试以下替代方案。

您可以使用其他名称传递 token 。因为您正在处理来自您的应用程序的授权。因此,您可以轻松地将这种灵 active 用于此特殊目的。

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Application-Authorization: mytoken123"

请注意,我已将 header 更改为Application-Authorization。因此,从您的应用程序中捕获该 header 下的 token 并处理您需要执行的操作。

您可以做的另一件事是,通过 POST 参数传递 token 并从服务器端获取参数的值。例如使用curl post参数传递 token :

-d "auth-token=mytoken123"

关于rest - 基本 HTTP 和不记名 token 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22229996/

相关文章:

java - 在 Android 上使用 Jersey 客户端发布大型 JSON 字符串

c++ - cmake - 何时在 CMakeLists.txt 文件中包含 include_directories

php - 如何使file_get_contents()与HTTPS一起使用?

javascript - 将 HTTP 基本身份验证 header 添加到 Backbone.js 同步功能可防止模型在保存时更新()

ruby-on-rails - Savon OpenSSL::SSL::SSLError

javascript - 我应该选择哪一方来测试 REST API?

python - RESTful API 中使用的 Etag 仍然容易受到竞争条件的影响

javascript - UIWebview 不会通过基本身份验证加载动态加载的资源(通过 jQuery Mobile)

java - create方法的返回结果和201状态码

gcc - 对 `__ctype_b_loc' 等的 undefined reference