如何使用 rails 安全地存储 Google Api 密钥并在脚本中使用它们?

How to safely store Google Api keys with rails and use them in scripts?

我正在尝试安全地存储我在 rails 项目中使用的 Google api 密钥。我尝试将它存储在我的 secrets.yml 文件中,但如果我在我的 google 脚本 &key=ENV['google_api'] 中说它无法获取它。

我很确定这不是方法,但在谷歌搜索该主题后,我真的找不到明确的答案。谁能提供一些帮助?

谢谢, 托马斯

UPDATE,这是我用来获取布局文件中的密钥的代码: 问题,我仍然收到我的 api_key 是 "nil".

的错误
  <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"%>

您需要将脚本调用放入 application.html.erb 文件中,以便 ruby 可以解析 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

我正在使用 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']}" %>