基本HTTP和承载令牌认证

 依一勇婷16_639 发布于 2023-01-19 16:13

我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.

我试过这个:

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

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

2 个回答
  • 试试这个在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"
    

    2023-01-19 16:15 回答
  • 标准(https://tools.ietf.org/html/rfc6750)表示您可以使用:

    表格编码的身体参数:授权:Bearer mytoken123

    URI查询参数:access_token = mytoken123

    因此,可以通过URI传递许多Bearer Token,但不鼓励这样做(参见标准中的第5节).

    2023-01-19 16:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有