我目前正在为开发环境开发一个受HTTP-Basic保护的REST-API。由于真正的身份验证是通过令牌完成的,所以我仍然在尝试弄清楚如何发送两个authorization头。
我试过这个:
curl -i http://dev.myapp.com/api/users \
-H "Authorization: Basic Ym9zY236Ym9zY28=" \
-H "Authorization: Bearer mytoken123"例如,我可以禁用我的IP的HTTP-Authentication,但因为我通常在不同的环境中使用动态IP,所以这不是一个好的解决方案。我是不是漏掉了什么?
发布于 2014-03-22 01:04:28
尝试使用此方法在url上推送基本身份验证:
curl -i http://username:password@dev.myapp.com/api/users -H "Authorization: Bearer mytoken123"
^^^^^^^^^^^^^^^^^^如果上面的一个不起作用,那么你就和它没有任何关系。因此,请尝试以下备选方案。
您可以使用另一个名称传递令牌。因为您正在处理来自应用程序的授权。因此,您可以很容易地将这种灵活性用于此特殊用途。
curl -i http://dev.myapp.com/api/users \
-H "Authorization: Basic Ym9zY236Ym9zY28=" \
-H "Application-Authorization: mytoken123"请注意,我已将标头更改为Application-Authorization。因此,从您的应用程序捕获该标头下的令牌,并处理您需要做的事情。
您可以做的另一件事是,通过POST参数传递token并从服务器端获取参数值。例如,使用curl post参数传递token:
-d "auth-token=mytoken123"发布于 2015-08-12 15:36:51
标准(https://www.rfc-editor.org/rfc/rfc6750)说你可以使用:
因此,可以通过URI传递许多不记名令牌,但不鼓励这样做(请参阅标准中的第5节)。
发布于 2018-06-21 22:35:25
如果您在两者之间使用反向代理,例如nginx,则可以定义一个自定义令牌,例如X-API-Token。
在nginx中,您可以将其重写为仅为auth的上游代理( rest api):
proxy_set_header Authorization $http_x_api_token;..。而nginx可以使用原始的Authorization头部来检查HTTP AUth。
https://stackoverflow.com/questions/22229996
复制相似问题