[英]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.