簡體   English   中英

斷開 dapp 與 MetaMask 的連接

[英]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 的連接? 謝謝你!

您可以在提供的圖像中看到行為,錢包通過斷開按鈕斷開連接,但您仍然可以在 Metamask GUI 中看到它已連接在此處輸入圖像描述

我也遇到過這個問題,但我發現 dapp 應用程序無法從 Metmask 內部斷開連接[它沒有特權]。 但我們可以做的是從我們的應用程序內部處理連接。 例如:您將帳戶和提供程序存儲在一個變量中,然后當您按下斷開按鈕時,它只是從該變量中刪除該信息,您認為我們已斷開連接,但實際上我們無法斷開與實際元掩碼的連接。

但是當有人真正斷開他/她的帳戶與 Metamask 的連接時,您可以收聽 accountChanged 事件以在您的應用程序中處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM