Metamask为什么取不到账号?

简介: 当你使用Metamask测试以太坊DApp时,如果出现莫名其妙的问题,检查一下web3.eth.accounts是否可以获取到账户,如果不能获取的话,那么最大的可能是你使用了新版的Metamask,并且默认启用了隐私模式。

当你使用Metamask测试以太坊DApp时,如果出现莫名其妙的问题,检查一下web3.eth.accounts是否可以获取到账户,如果不能获取的话,那么最大的可能是你使用了新版的Metamask,并且默认启用了隐私模式。

有两种办法来让你的DApp可以正常访问Metamask管理的账户:关闭隐私模式,或者修改JavaScript代码使其兼容Metamask的隐私模式。

一、关闭隐私模式

在metamask中首先进入设置,然后点击security & privacy
在隐私模式菜单,选择关闭隐私模式即可:

menu 2

二、兼容隐私模式

在2018年11月,Metamask刚引入隐私模式时,该选项默认是关闭的。但是在
最新的版本中,已经默认开启了隐私模式。要求每个用户都手动关闭隐私模式
是不现实的,因此更好的方案是修改我们的JavaScript代码来兼容隐私模式:

window.addEventListener('load', async () => {
    // Modern dapp browsers...
    if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
            // Request account access if needed
            await ethereum.enable();
            // Acccounts now exposed
            web3.eth.sendTransaction({/* ... */});
        } catch (error) {
            // User denied account access...
        }
    }
    // Legacy dapp browsers...
    else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider);
        // Acccounts always exposed
        web3.eth.sendTransaction({/* ... */});
    }
    // Non-dapp browsers...
    else {
        console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
    }
});

使用window.ethereum来判断是否新版metamask,如果是的话,就调用ethereum.enable()
方法来请求用户授权,这将在用户网页中弹出一个授权对话框,类似如下:

connect request

一旦用户点击了connect按钮,你的应用就可以像之前一样访问Metamask的账户了。

如果希望快速掌握以太坊智能合约与DApp开发,可以访问汇智网的在线互动课程:


目录
相关文章
|
安全 数据安全/隐私保护
阿里云账号开启手机号登录方法
阿里云账号开启手机号验证码登录方法
2348 0
阿里云账号开启手机号登录方法
|
1月前
阿里云国际版账号登录不上去,账号被风控怎么办?
阿里云国际版账号登录不上去,账号被风控怎么办?
|
弹性计算 对象存储
阿里云新账户和老账号有什么区别?
阿里云新账户和老账号有什么区别?阿里云账号分为云新账户、老账户、同人账号和同一用户有什么区别?阿里云官方推出的活动很多是限制账号类型的,常见的如阿里云新用户,什么是阿里云新用户?是指从未在阿里云官网购买过云产品的账号。下面阿小云来详细说下什么是阿里云新账户、老账户、同人账号、同一用户
117 0
|
安全 数据安全/隐私保护
阿里云账号注册、实名认证、账号信息管理、密码找回及账号注销流程及常见问题
本文为大家详细介绍我们在注册阿里云账号,完成账号实名认证,管理账号信息,账号密码找回以及注销账号的详细流程及常见问题。
阿里云账号注册、实名认证、账号信息管理、密码找回及账号注销流程及常见问题
|
Shell 5G 数据安全/隐私保护
账号和权限管理
账号和权限管理
149 0
|
弹性计算 对象存储 CDN
阿里云账号是什么?怎么注册?
阿里云账号是什么?怎么注册?阿里云账号怎么注册?阿里云账号支持手机号注册、阿里云APP注册、支付宝和钉钉多种注册方式,账号注册后需要通过实名认证才可以购买或使用云产品,阿里云百科来详细说下不同途径注册阿里云账号图文流程:
1436 0
阿里云账号是什么?怎么注册?
|
弹性计算 对象存储 CDN
阿里云账号怎么注册?
阿里云账号怎么注册?阿里云账号支持手机号注册、阿里云APP注册、支付宝和钉钉多种注册方式,账号注册后需要通过实名认证才可以购买或使用云产品,阿里云百科来详细说下不同途径注册阿里云账号图文流程:
186 0
阿里云账号怎么注册?
|
数据安全/隐私保护
账号配置
账号配置
122 0
账号配置
|
存储 弹性计算 Linux
登录阿里云,注册账号|学习笔记
快速学习登录阿里云,注册账号
登录阿里云,注册账号|学习笔记
|
Serverless 数据安全/隐私保护 开发者
登陆创建账号|学习笔记
快速学习登陆创建账号
登陆创建账号|学习笔记