检查access_key是否与NEAR帐户匹配的最佳方法

问题描述 投票:1回答:1

我正在构建一个用户身份验证解决方案,该解决方案将附近的帐户与我自己的生成的访问令牌相匹配。我想在我的node.js后端(使用Nearlib?)中验证near access key(存储在浏览器的本地存储中)是否与提供的Near帐户匹配。这是为了证明请求实际上是由帐户所有者发送的。

所以,如果我有:

accountID: "myAccount",
near_access_token: "ed25519:{...}"

我还假设此处要使用的正确的near access token位于nearlib:keystore:klopt:default下。

nearprotocol
1个回答
0
投票

我想在我的node.js后端中验证(使用Nearlib?)是否一个近访问密钥(存储在浏览器的本地存储中)与提供的近帐户相匹配。

您应该可以通过account.getAccessKeys()呼叫https://github.com/nearprotocol/nearlib/blob/master/src.ts/account.ts#L202获得给定帐户的访问密钥列表>

然后您可以检查密钥库中的密钥对是否具有相同的公共密钥。

这是为了证明请求实际上是由帐户所有者发送的。

[如果您想证明请求是由帐户所有者发送的,则需要验证签名。

例如帐户辅助程序微服务中的以下代码:https://github.com/nearprotocol/near-contract-helper/blob/19ac6ce05a0d44f0e389c85b30bc2b6a9190caac/app.js#L97

在那种情况下,securityCode必须由帐户签名(设置帐户恢复时)。在您的情况下,您不想签署securityCode,而是要签署请求。

您应该能够使用Signer.signMessage API https://github.com/nearprotocol/nearlib/blob/master/src.ts/signer.ts#L38签署请求>

© www.soinside.com 2019 - 2024. All rights reserved.