我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.
我试过这个:
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" ^^^^^^^^^^^^^^^^^^
如果上面的一个不起作用,那么你就没有任何关系.因此,请尝试以下替代方案.
您可以使用其他名称传递令牌.因为您正在处理来自您的应用程序的授权.因此,您可以轻松地将此灵活性用于此特殊目的.
curl -i http://dev.myapp.com/api/users \ -H "Authorization: Basic Ym9zY236Ym9zY28=" \ -H "Application-Authorization: mytoken123"
请注意我已将标题更改为Application-Authorization
.因此,从您的应用程序中捕获该标题下的令牌并处理您需要执行的操作.
你可以做的另一件事是,传递token
通过POST
参数和抓住从服务器端的参数值.例如,使用curl post参数传递令牌:
-d "auth-token=mytoken123"
标准(https://tools.ietf.org/html/rfc6750)表示您可以使用:
表格编码的身体参数:授权:Bearer mytoken123
URI查询参数:access_token = mytoken123
因此,可以通过URI传递许多Bearer Token,但不鼓励这样做(参见标准中的第5节).