Управление учетными данными Rails в lib, установленном с помощью Yarn - PullRequest
0 голосов
/ 13 апреля 2020

Я установил места Алголии в рельсах с пряжей. Я пытаюсь добавить ключ API к учетным данным rails.

Я импортирую в приложение. js с местами. js файл:

'use strict';
import places from 'places.js';
import placesAutocompleteDataset from 'places.js/autocompleteDataset';

$(document).on('turbolinks:load', function() {
    var placesAutocomplete = places({
        appId: 'xxxxxxxx',
        apiKey: 'xxxxxxxx',
        container: document.querySelector('#user_street_address'),
        templates: {
          value: function(suggestion) {
            return suggestion.name;
          }
        }
      }).configure({
        type: 'address'
      });
      placesAutocomplete.on('change', function resultSelected(e) {
        document.querySelector('#user_state').value = e.suggestion.administrative || '';
        document.querySelector('#user_city').value = e.suggestion.city || '';
        document.querySelector('#user_zipcode').value = e.suggestion.postcode || '';
        document.querySelector('#user_country').value = e.suggestion.country || '';
      });

  });

Я попытался добавить инициализаторы в /config/initializers/algoliasearch.rb

AlgoliaSearch.configuration = {
  application_id:  Rails.application.credentials.algolia[:applicationId],
  api_key:  Rails.application.credentials.algolia[:apiKey],

  # uncomment to use backend pagination
  # pagination_backend: :will_paginate

}

, но я получаю неинициализированную постоянную ошибку

Как я могу защитить учетные данные?

1 Ответ

0 голосов
/ 13 апреля 2020

Вы должны будете использовать интерполяцию ERB, если хотите использовать зашифрованные секреты Rails.

Но это действительно очень бессмысленное усилие, поскольку учетные данные передаются клиенту в открытом тексте. В браузере нет никаких секретов.

Вместо этого вы можете просто передать их как переменные ENV в webpack .

...