Metamask
為什麼 Metamask 提供商允許 dapp 在內容之前查看使用者的帳戶?
正如EIP-1102中所說,該標準旨在防止 dapp 在未經使用者許可的情況下通過乙太坊提供商獲得訪問使用者帳戶的能力。為此,
eth_requestAccounts
定義了一個方法,該方法應返回一個承諾,後者將通過帳戶數組解決,或者在例如使用者拒絕訪問時因錯誤而被拒絕。Metamask 聲稱它符合這個標準。但是,我發現它不需要任何使用者確認閱讀他們的帳戶。具體來說,這行程式碼只會產生一個用使用者帳戶解決的承諾。同時不會觸發任何使用者界面:
ethereum.request({ method: 'eth_requestAccounts' })
僅當 dapp 嘗試使用此帳戶發送交易時才會請求同意。
有沒有想過為什麼 Metamask 會選擇這種據稱與 EIP-1102 相悖的方式?
MetaMask 符合這種方法,它首先要求使用者允許應用程序(域)訪問他們的帳戶,然後它要求對發送的每筆交易進行確認。不過,對於津貼,它只在每個域的開頭詢問一次。
您是否在已批准地址的網站上對此進行測試?
如果是這樣,請選擇帳戶,點擊右上角的樹垂直點,選擇“連接的站點”。將出現一個列表,您可以從那裡刪除每個以前允許的站點的權限。