【问题标题】:Hiding Google API Key in Heroku using Rails使用 Rails 在 Heroku 中隐藏 Google API 密钥
【发布时间】:2016-11-27 14:16:44
【问题描述】:
我是 Heroku 的新手。你如何在 Heroku 中隐藏你的 API 密钥?我从文档中知道我可以使用 config vars
https://devcenter.heroku.com/articles/config-vars
但是如何从 JavaScript 加载配置?
我想做的是这样的
https://developers.google.com/maps/documentation/javascript/tutorial
我正在为我的应用程序使用 Ruby on Rails。
【问题讨论】:
标签:
javascript
ruby-on-rails
ruby
google-maps
heroku
【解决方案1】:
使用 API 密钥而不将其提交到代码中的一种好方法是使用环境变量。这些是设置在系统外壳中的变量,用于为 Rails 应用程序提供服务,可以在代码中引用。在 Heroku 上,您将设置与标准 Linux 服务器不同的环境变量。
首先,在您的 Rails 应用程序中,您将插入如下环境变量的值:ENV["MY_API_KEY"]
坚持将 API 密钥放在 Rails 应用程序中的任何位置,然后在此 Heroku 命令中使用 API 密钥设置环境变量:heroku config:set MY_API_KEY=some_long_example_api_key_09823098270098
现在在您的 Rails 应用程序中,当您使用 ENV["MY_API_KEY"] 时,当您的应用程序在 Heroku 上运行时,它将插入值 some_long_example_api_key_09823098270098。
如果您尝试在 .js.erb 文件中引用环境变量,则需要将其写为 <%= ENV["MY_API_KEY"] %>
Heroku documentation