Как передать среду varialbes в веб-расширение

Я хочу создать веб-расширение, которое использует некоторые сервисы AWS, и я не хочу загружать ключи API в git, однако я не могу передать свои ключи API обычным способом. Например:

Если я запускаю команду IDENTITY_POOL_ID=<id_pool_id> web-ext run Я обычно ожидаю, что переменная будет доступна в process.env.IDENTITY_POOL_ID, тем не мение, process.env пустой.

Я также попытался добавить файл.env в корень каталога с расширением web.

0 ответов

Поскольку расширение работает "на стороне клиента" process.envне доступен. Расширение, работающее в браузере, не имеет доступа к переменным среды. Вместо этого в этом случае вы хотите, чтобы расширение использовалоbrowser.storage и попросите пользователя (возможно, вы) установить значение при установке расширения на странице параметров.

например, вот options.js файл;

function saveOptions(e) {
  var api_key = document.querySelector("#api_key").value
  browser.storage.local.set({"api_key": api_key}).then(restoreOptions)  
  e.preventDefault();
}

function restoreOptions() {
  browser.storage.local.get("api_key").then(function(data) {
    if (typeof data['api_key'] != 'undefined') {
      var api_key = data['api_key']
      document.querySelector("#api_key").value = api_key
    }
  })

}

document.addEventListener('DOMContentLoaded', restoreOptions)
document.querySelector("form").addEventListener("submit", saveOptions)

А вот и соответствующий options.html;

<!DOCTYPE html>

<html lang="en">

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Options</titlE>
  <meta charset="utf-8">
</head>

<body>
  <form>
    <label for="api_key">API Key:</label>
    <input type="text" id="api_key">
    <button type="submit">Save</button>
  </form>
  <script src="options.js"></script>
</body>

</html>
Другие вопросы по тегам