使用 Figaro 存储身份验证密钥
将 gem 'figaro'
添加到你的 Gemfile 并运行 bundle install
。然后运行 bundle exec figaro install
; 这将创建 config / application.yml 并将其添加到 .gitignore 文件中,防止将其添加到版本控制中。
你可以使用以下格式将密钥存储在 application.yml 中:
SECRET_NAME: secret_value
其中 SECRET_NAME 和 secret_value 是 API 密钥的名称和价值。
你还需要在 config / secrets.yml 中命名这些秘密。你可以在每个环境中拥有不同的秘密。该文件应如下所示:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
你如何使用这些密钥各不相同,但是例如说开发环境中的 some_component
需要访问 secret_name
。在 config / environments / development.rb 中,你要放:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
最后,假设你希望在 Heroku 上启动生产环境。此命令将 config / environments / production.rb 中的值上传到 Heroku:
$ figaro heroku:set -e production