Google Picker: как сохранить мои ключи от JavaScript - PullRequest
0 голосов
/ 07 сентября 2018

Я слежу за документом выбора и получаю информацию об изображении после выбора пользователя.

https://developers.google.com/picker/docs/?hl=en

Однако я не знаю, как хранить ключи в секрете, чтобы пользователи не крали мой ключ из JavaScript.
Даже если я сохраню и получу данные на внутреннем сервере, пользователи все равно смогут прочитать мой ключ, когда я попытаюсь инициализировать объекты выбора.

  // How can I keep the following keys so no one can steal it?
  var developerKey = 'xxxxxxxYYYYYYYY-12345678';
  var clientId = '1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com';
  var scope = 'https://www.googleapis.com/auth/photos';

  var pickerApiLoaded = false;
  var oauthToken;

  // Use the API Loader script to load google.picker and gapi.auth.
  function onApiLoad() {
    gapi.load('auth2', onAuthApiLoad);
    gapi.load('picker', onPickerApiLoad);
  }

  function onAuthApiLoad() {
    var authBtn = document.getElementById('auth');
    authBtn.disabled = false;
    authBtn.addEventListener('click', function() {
      gapi.auth2.authorize({
        client_id: clientId,
        scope: scope
      }, handleAuthResult);
    });
  }

  function onPickerApiLoad() {
    pickerApiLoaded = true;
    createPicker();
  }

  function handleAuthResult(authResult) {
    if (authResult && !authResult.error) {
      oauthToken = authResult.access_token;
      createPicker();
    }
  }

  // Create and render a Picker object for picking user Photos.
  function createPicker() {
    if (pickerApiLoaded && oauthToken) {
      var picker = new google.picker.PickerBuilder().
          addView(google.picker.ViewId.PHOTOS).
          setOAuthToken(oauthToken).
          setDeveloperKey(developerKey).
          setCallback(pickerCallback).
          build();
      picker.setVisible(true);
    }
  }
...