如何使用 web3 连接到受保护的 infura 项目?

Posted

技术标签:

【中文标题】如何使用 web3 连接到受保护的 infura 项目?【英文标题】:How to connect to a protected infura project with web3? 【发布时间】:2019-09-26 12:34:27 【问题描述】:

我在节点 js 中使用 web3 来创建带有 infura 项目的新 Web3.providers.HttpProvider,其配置为“所有请求都需要项目密码”

infura:

https://infura.io/docs/gettingStarted/authentication

说明 curl 调用是:

curl --user :YOUR-PROJECT-SECRET \ https://.infura.io/v3/YOUR-PROJECT-ID

我用过:

const client = new Web3(new Web3.providers.HttpProvider('https://YOUR-PROJECT-SECRET@<network>.infura.io/v3/YOUR-PROJECT-ID');

它不起作用。

请问如何将 --user 标记及其值添加到新的 Web3.providers.HttpProvider 中?

提前致谢!

【问题讨论】:

【参考方案1】:

我正在回答我的问题:

我解决了它在 YOUR-PROJECT-SECRET 之前添加“:”,如下所示:

const client = new Web3(new Web3.providers.HttpProvider('https://:YOUR-PROJECT-SECRET@<network>.infura.io/v3/YOUR-PROJECT-ID');

现在可以使用了!

【讨论】:

这种方法有多安全?有没有其他方法可以解决这个问题? 这是为了基本的安全连接。如果您想要更高的安全性,您可以在 Infura 项目中使用 JWT 配置。通过使用以太坊地址、用户代理和 HTTP Origin 标头允许列表添加额外的安全层来确保请求的完整性。如果您知道您只会在安全环境(例如您的后端 Web 应用程序)中与 Infura API 交互,您可以在项目的配置页面中的安全部分下切换需要私有机密设置。 小心,如果您在客户端代码中使用它,它将是公开的。不确定用“秘密”来做这件事是否是个好主意......

以上是关于如何使用 web3 连接到受保护的 infura 项目?的主要内容,如果未能解决你的问题,请参考以下文章

Web3 开发者平台 Infura 的用户数突破 35 万!

如何使用 WildFly 连接到受 Kerberos 保护的 Apache Phoenix 数据源?

发送原始交易 Ethereum infura nodejs npm

如何使用 Ivy iBiblio 解析器连接到受 SPNEGO 保护的 Maven 存储库?

如何从 Spring JdbcTemplate 连接到受密码保护的 MS Access 数据库?

BlockNumber 属性对象