Web3js
使用 web3.personal.sign 在伺服器上進行 MetaMask 驗證
我最近看到這篇文章並立即嘗試,不幸的是,我沒有從伺服器獲得正確的結果。我認為這與雜湊算法 sha3 有關,但我不確定。有人可以更新解決方案嗎?謝謝!
我想這就是你要的…
使用 Web3.js 1.0 和 Metamask:
為消息創建簽名:
var message = "Some string" var hash = web3.utils.sha3(message) var accounts = await web3.eth.getAccounts() var signature = await web3.eth.personal.sign(hash, accounts[0])
恢復消息+簽名的地址:
var hash = web3.utils.sha3(message) var signing_address = await web3.eth.personal.ecRecover(hash, signature)
如果您全面使用相同的消息和簽名,您應該會看到這
signing_address
將匹配。accounts[0]
注入 metamask 和 web3 以通過消息和簽名恢復乙太坊帳戶
var Encoded hash = web3.fromUtf8(“平台認證”)
web3.personal.ecRecover(hashCodificado, "0x9b2d3a06ff7da90b629b18eaa56e150da522fa77d550d06be14049ee808ca3aa471af025c1aa40e5e11e3b42a0e033935da7b934059c1e6bebbc4f6h4486d7b51b", function (error, result) { if (error) alert("Necesitas identificarte para poder entrar al panel de usuario"); if (result) { alert("La cuenta que ha firmado la transaccion es: " + result) } });