chrome扩展中的隐藏环境变量

时间:2017-11-16 14:45:21

标签: javascript google-chrome-extension xmlhttprequest

我正在开发Chrome扩展程序。完全是新的。

对于loggin部分,我想将输出发布到我托管Elastic的服务器。

我通过XMLHttpRequest进行了工作设置。在upLog.open()里面我有我的弹性环境的凭据。

但是:我不想在我的Chrome扩展程序中对我的弹性凭据进行硬编码。

隐藏这些内容的最佳方法是什么?

我目前的日志记录功能:

function sendLog(log){
  let upLog = new XMLHttpRequest();

  upLog.open('POST', 'https://xxxxx.us-east-1.aws.found.io:9243/chrome-extension-logging/log_objects/' , true , 'username', 'password' );
  upLog.onload = function (oEvent) {
    if (oEvent.currentTarget.status !== 201) {
      setErrorBadge();
      console.log('Can\'t upload Error Log to service', oEvent.currentTarget.responseText);
      showAlert('Error', 'Can\'t upload Error Log to service');
      return { status: false, data: {} };
    } else {
      console.log('Log uploaded');
      setSuccessBadge();
      showAlert('Success', 'Log uploaded');
      return { status: true, data: {} };
    }
  };
  upLog.onerror = function (oEvent) {
    setErrorBadge();
    console.log('Can\'t upload log to service', oEvent);
    showAlert('Error', 'Can\'t upload log to service (server error)');
    return { status: false };
  };
  upLog.setRequestHeader('Content-Type', 'application/json');
  upLog.send(JSON.stringify({ item : log }));
}

1 个答案:

答案 0 :(得分:0)

尝试Streamlining the Sign-in Flow Using Credential Management API

使用Credential Management API,您可以启用navigator.credentials.requireUserMediation()的中介模式。只要打开了用户的原始中介状态,并使用unmediated: true navigator.credentials.get(),该功能将以undefined解决。