在以太坊中,JWT 身份验证通过以下过程进行:
https ://github.com/Bearle/django-web3-auth/
1)用户使用帐户私钥在元掩码中签署消息。
2) 将账户地址和签名消息发布到后端
3) 后端验证签名是否正确并生成签名的 Json Web Token (JWT) 证明持有者控制地址
Near 协议使用以下代码进行签名:
window.near = await nearlib.connect(Object.assign({ deps: { keyStore: new nearlib.keyStores.BrowserLocalStorageKeyStore() } }, window.nearConfig));
// Needed to access wallet login
window.walletAccount = new nearlib.WalletAccount(window.near);
和这个:
await this.props.wallet.requestSignIn(
window.nearConfig.contractName,
appTitle
)
如何在后端使用近登录,尤其是验证步骤。在 python 的情况下,它使用 web3
from web3auth.utils import recover_to_addr
if not address == recover_to_addr(token, signature):
return None
我可以在近协议中使用python(或javascript或rust)中的东西吗?Rust 示例很好,因为我可以通过 cffi 在 python 中调用该函数。
请提供一些代码。