[axios]通过授权标头添加对 HTTP 基本身份验证的支持

2024-05-15 98 views
0

修复#78。

这是#130 的复活,带有测试和文档;看来努力停滞了。我已经在最新的 master 之上重新建立了 @lachenmayer 的分支并处理了冲突,这应该可以干净地合并。

最关键的是,它不依赖于 URL 嵌入身份(又名http://user:pass@example.com)。出于安全原因,Chrome 19 放弃了对 XMLHttpRequest 中 URL 嵌入身份的支持。依赖于尾随userpass参数的基本身份验证XMLHttpRequest.open在某些平台上将失败。相比之下,Authorization标头在任何地方都适用。

感谢@lachenmayer 最初的努力,感谢@mzabriskie 可爱的axios。

回答

7

@laander herp derp,没有注意到这一点。定影

0

@idan 看到它的源代码只有 ~500 字节,我认为这样就可以了:+1:@mzabriskie 你的想法是什么?

3

是的,同时考虑到 ES2015 承诺是必需的,甚至在任何 IE 风格中都不支持,似乎有理由说旧版 IE 需要btoa.

5

我认为考虑到 polyfill 的大小,btoa我们只需将其添加为辅助函数并在本地导入即可。所以我们实际上并没有在窗口上进行填充。像这样的事情:

module.exports = window.btoa || function () { /* ... */ };

然后只需xhr.js导入并使用本地助手即可。

另外我想我更愿意只提供一种命名约定。要么usernamepassword要么userpass。我认为没有必要同时支持两者。

感谢您的公关!

4

罗杰.

2

@mzabriskie 完成。我进行了 Polyfill 签入,xhr.js以便于独立测试 Polyfill 模块。

还取消了对非缩写风格的支持user和支持。pass

1

@idan 非常感谢您的公关!

3

:心::闪闪发光::蛋糕:!

@mzabriskie 能否也为 NPM 制作一个新版本?

非常感谢 Axios。 :微笑:

4

非常感谢@idan 的添加。给定一个像 之类的 url,Axios 需要什么才能https://jane:doe@example.com挑选出身份验证信息并将其自动添加到配置中? :繁荣: