首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用自定义提示符在以太中解锁帐户?

如何使用自定义提示符在以太中解锁帐户?
EN

Stack Overflow用户
提问于 2016-10-21 14:56:55
回答 1查看 1.6K关注 0票数 1

我正在与Ethereumjavascriptweb3.jsgethbootstrap 3合作。其功能类似于,当交易在blockchain中发生时,它必须提示帐户解锁密码。

我已经完成了下面的代码,但问题是,它将密码显示为文本,所以现在我想要制作一个自定义提示,其中接受密码。

我也尝试过使用bootbox.js,但由于同步问题,它不起作用。也就是说,在提示被调用之前,它会给出“帐户已锁定”,而不是等待用户输入密码。

我想使用像"bootbox.js“中的一些交互式提示来获取密码,并等待用户输入,然后通过输入解锁帐户,然后进行交易。

这就是我所做的

代码语言:javascript
复制
function unlockAccount(){
    var accounts = web3.eth.accounts;
    var passPhrase = prompt("Enter the passPhrase",'');
    web3.personal.unlockAccount(accounts[0],passPhrase);

}

如果你需要任何进一步的细节,请在投反对票之前询问。谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-12-23 00:23:45

试试这个(对我来说就像一个护身符):

代码语言:javascript
复制
var promptCount = 0;
    window.pw_prompt = function (options) {
      var lm = options.lm || "Password:",
        bm = options.bm || "Submit";
      if (!options.callback) {
        alert("No callback function provided! Please provide one.")
      };

      var prompt = document.createElement("div");
      prompt.className = "pw_prompt";

      var submit = function () {
        options.callback(input.value);
        document.body.removeChild(prompt);
      };

      var label = document.createElement("label");
      label.textContent = lm;
      label.for = "pw_prompt_input" + (++promptCount);
      prompt.appendChild(label);

      var input = document.createElement("input");
      input.id = "pw_prompt_input" + (promptCount);
      input.type = "password";
      input.addEventListener("keyup", function (e) {
        if (e.keyCode == 13) submit();
      }, false);
      prompt.appendChild(input);

      var button = document.createElement("button");
      button.textContent = bm;
      button.addEventListener("click", submit, false);
      prompt.appendChild(button);

      document.body.appendChild(prompt);
      document.getElementById(input.id).focus()
    };

pw_prompt({        
        lm: 'Enter Password to load your identity',
        bm: 'Load',
        callback: function (password) {     
          web3.personal.unlockAccount(accounts[0], password);
      }});
代码语言:javascript
复制
.pw_prompt {
        position: fixed;
        left: 50%;
        top: 50%;
        margin-left: -150px;
        padding: 15px;
        /* width: 263px; */
        border: 1px solid black;
        background: darkgrey;
    }
.pw_prompt label {
  display:block; 
  margin-bottom:5px;
}
.pw_prompt input {
  width:300px;
  margin-bottom:10px;
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40170210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档