2016-05-30 1 views
3

Я пытаюсь безопасно хранить ключ api Google, который я использую в проекте rails. Я попытался сохранить его в файле secrets.yml, но если я скажу в своем скрипте google & key = ENV ['google_api'], он не сможет его получить.Как безопасно хранить ключи Google Api с рельсами и использовать их в скриптах?

Я уверен, что это не так, но после того, как я придумал тему, я не могу найти четкого ответа на это. Кто может помочь?

Спасибо, Томас

UPDATE, вот код, я использую для извлечения ключа в моем файле раскладок: Issue, я все еще получаю ошибку, что мой api_key является «ноль».

<script> 
    var GOOGLE_API_KEY="#{ENV['GOOGLE_API_KEY']}" 
    </script> 
    <%= javascript_include_tag "//maps.google.com/maps/api/js?v=3.23&key=#{ENV['GOOGLE_API_KEY']}&libraries=geometry,places&language=&hl=&region=&callback=initMap"%> 

ответ

1

Вы хотите, чтобы поставить вызов сценария в application.html.erb файле, рубин может разобрать ENV['google_api']. Вот пример файла приложения (в Haml):

!!! 
%html 
    %head 
    %title Pursuit 
    = stylesheet_link_tag 'application', media: 'all' 
    = csrf_meta_tags 

    :javascript 
     var GOOGLE_API_KEY="#{ENV['GOOGLE_API_KEY']}" 
    = javascript_include_tag 'application' 
    = javascript_include_tag "//maps.googleapis.com/maps/api/js?libraries=places&key=#{ENV['GOOGLE_API_KEY']}" 

    %body 
    = render 'layouts/menu' 
    .row 
     .col.m12.l10.offset-l1 
     = yield 
+0

Мое приложение требует доступа снова в переменную env в файле application.js, поэтому я устанавливаю ее здесь. –

+0

Плюс, как я могу это сделать на странице просмотра? Или вы всегда должны упоминать об этом на application.html.erb? –

+0

Обновление, это сценарий, который я добавил с вашей помощью. Однако он не может идентифицировать ключ и упоминает apiKey = nil ... Любые мысли? <% = javascript_include_tag «//maps.google.com/maps/api/js?v=3.23&key=#{ENV['GOOGLE_API_KEY '] } & libraries = geometry, places & language = & hl = & region = & callback = initMap "%> –

2

Я использовал figaro gem. Для меня работала добавление переменной окружения в файл application.yml.

GOOGLE_API_KEY: there_put_the_key 

Тогда на вершине app/views/layouts/application.html.erb (Если вы хотите добавить источник для всех видов еще вы можете добавить эту строку в определенной точки зрения) просто добавьте эту строку

<%= javascript_include_tag "//maps.google.com/maps/api/js?key=#{ENV['GOOGLE_API_KEY']}" %> 
Смежные вопросы