作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试访问 Ankr API 地址,如下所示:
https://apis.ankr.com/XXXX/YYYY/full/main
当通过浏览器访问这个链接时,我可以输入我在 Ankr 面板控件上创建的凭据,我可以成功通过。但是现在我正尝试在 Node 上使用 Web3.js 来做到这一点:
var options = {
headers: [
{
name: 'Authorization',
value: 'Basic myUsername:myPassword',
},],};
const web3 = new Web3(new Web3.providers.HttpProvider('https://apis.ankr.com/XXXX/YYYY/full/main', options))
我收到了 401 Unauthorized 错误响应。我认为我的凭据是正确的,因为我可以通过浏览器上的链接访问它们,但在传递 header 时它们似乎不起作用。代码有什么问题或缺少什么?
最佳答案
您需要传递 myUsername:myPassword
的 base64,而不是实际的明文。
// base64 encoded
value: 'Basic ' + Buffer.from('myUsername:myPassword').toString('base64'),
参见 MDN docs了解更多信息。
关于node.js - 使用 Web3.js HttpProvider 调用 API 时如何向 Ankr 提供凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67461924/
我正在尝试访问 Ankr API 地址,如下所示: https://apis.ankr.com/XXXX/YYYY/full/main 当通过浏览器访问这个链接时,我可以输入我在 Ankr 面板控件上
我是一名优秀的程序员,十分优秀!