首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本HTTP和持有者令牌身份验证

基本HTTP和持有者令牌身份验证
EN

Stack Overflow用户
提问于 2014-03-07 00:16:15
回答 7查看 383.5K关注 0票数 151

我目前正在为开发环境开发一个受HTTP-Basic保护的REST-API。由于真正的身份验证是通过令牌完成的,所以我仍然在尝试弄清楚如何发送两个authorization头。

我试过这个:

代码语言:javascript
复制
curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Authorization: Bearer mytoken123"

例如,我可以禁用我的IP的HTTP-Authentication,但因为我通常在不同的环境中使用动态IP,所以这不是一个好的解决方案。我是不是漏掉了什么?

EN

回答 7

Stack Overflow用户

发布于 2014-03-22 01:04:28

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

代码语言:javascript
复制
curl -i http://username:password@dev.myapp.com/api/users -H "Authorization: Bearer mytoken123"
               ^^^^^^^^^^^^^^^^^^

如果上面的一个不起作用,那么你就和它没有任何关系。因此,请尝试以下备选方案。

您可以使用另一个名称传递令牌。因为您正在处理来自应用程序的授权。因此,您可以很容易地将这种灵活性用于此特殊用途。

代码语言:javascript
复制
curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Application-Authorization: mytoken123"

请注意,我已将标头更改为Application-Authorization。因此,从您的应用程序捕获该标头下的令牌,并处理您需要做的事情。

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

代码语言:javascript
复制
-d "auth-token=mytoken123"
票数 88
EN

Stack Overflow用户

发布于 2015-08-12 15:36:51

标准(https://www.rfc-editor.org/rfc/rfc6750)说你可以使用:

  • Form编码Body参数: Authorization:承载mytoken123
  • URI查询参数:Authorization

因此,可以通过URI传递许多不记名令牌,但不鼓励这样做(请参阅标准中的第5节)。

票数 36
EN

Stack Overflow用户

发布于 2018-06-21 22:35:25

如果您在两者之间使用反向代理,例如nginx,则可以定义一个自定义令牌,例如X-API-Token

在nginx中,您可以将其重写为仅为auth的上游代理( rest api):

代码语言:javascript
复制
proxy_set_header Authorization $http_x_api_token;

..。而nginx可以使用原始的Authorization头部来检查HTTP AUth。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22229996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档