1

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

所以如果我有:

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

我还假设在near access token这里使用的正确是在nearlib:keystore:klopt:default.

4

1 回答 1

1

我想在我的 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.signMessageAPI https://github.com/nearprotocol/nearlib/blob/master/src.ts/signer.ts#L38签署请求

于 2020-01-16T20:29:31.903 回答