[英]Disconnect dapp from MetaMask
有各种教程教如何激活和停用 Metamask 钱包,或者一般来说可能是任何 CryptoWallet,但在所有这些教程中我都有同样的问题,如下所示:
当我停用我的帐户时,它仍会在 Metamask GUI 中显示您已连接,问题是当您重新加载页面时,您再次获得连接行为,就好像您从未断开连接一样,您可以通过以下代码示例自行验证:
使用 UseDapp 框架:
import React from 'react'
import { useEthers } from '@usedapp/core'
const TryUseDappExample = () => {
const { activateBrowserWallet, deactivate, account } = useEthers()
return (
<div>
{!account && <button onClick={activateBrowserWallet}> Connect </button>}
{account && <button onClick={deactivate}> Disconnect </button>}
{account && <p>Account: {account}</p>}
</div>
)
}
export default TryUseDappExample
请尝试点击连接 -> 断开连接 -> 重新加载页面,您会看到您仍然处于连接状态。
使用 Web3-react 教程提供了相同的场景,尽管当我重新加载页面时它没有显示钱包已连接,而是仅显示在 Metamask GUI 上。 我的问题是一般性的,你如何正确断开 Metamask 钱包与 dapp 的连接? 谢谢你!
我也遇到过这个问题,但我发现 dapp 应用程序无法从 Metmask 内部断开连接[它没有特权]。 但我们可以做的是从我们的应用程序内部处理连接。 例如:您将帐户和提供程序存储在一个变量中,然后当您按下断开按钮时,它只是从该变量中删除该信息,您认为我们已断开连接,但实际上我们无法断开与实际元掩码的连接。
但是当有人真正断开他/她的帐户与 Metamask 的连接时,您可以收听 accountChanged 事件以在您的应用程序中处理它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.