ahn*_*cad 5 ruby-on-rails heroku secret-key
我正在使用Rails 4.1.1和ruby 2.0.0
我目前忽略了我的secretts.yml文件到我的gitign for github.
secrets.yml
development:
secret_key_base: numb3r57ndl3tt3r5
test:
secret_key_base: differentnumbersandletters13531515
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE'] %>
Run Code Online (Sandbox Code Playgroud)
如果此生产密钥是动态的,它从何处读取?我们在哪里提供这些信息?如果没有到github那么这些信息如何到达heroku?
我的heroku应用程序设置中已经有一个秘密密钥环境变量.我认为它是在我使用heroku_secrets gem https://github.com/alexpeattie/heroku_secrets运行rake评论时创建的rake heroku:secrets RAILS_ENV=production
有人可以解释概念步骤,以及如何正确利用secrets.yml而不暴露公钥的秘密密钥的实际步骤?
如果您还可以为其他API添加另一个密钥,那么也会非常感激.
我想了解解释步骤中发生的事情,而不是"做这个,做这个,做这个".此外,如果有代码,请指定应放入哪个文件,而不是仅仅提供代码,并假设读者只根据代码知道它的位置(严厉查看heroku指南编写者)
谢谢!=]
如果您使用此密钥 <%= ENV["SECRET_KEY_BASE'] %>
在本地计算机上,您可以在shell中设置环境变量,例如(bash或zsh)
export SECRET_KEY_BASE="yourkeybasehere"
Run Code Online (Sandbox Code Playgroud)
并模拟你在生产(但在你的本地机器)上运行
RAILS_ENV=production rails s
Run Code Online (Sandbox Code Playgroud)
但是,在Heroku上部署,您可以通过运行heroku config:set
应用程序的命令来使用他们称之为配置变量的内容.
heroku config:set SECRET_KEY_BASE=yourkeybasehere
Run Code Online (Sandbox Code Playgroud)
然后Rails应用程序将此配置var填充到secret.yml中
production:
secret_key_base: yourkeybasehere
Run Code Online (Sandbox Code Playgroud)
希望这能解释您需要了解的内容.
但是,如果你想玩和测试.一种选择是尝试编辑app/views/layouts/application.html.erb文件并放置要显示的config var,例如USERNAME config var
<!DOCTYPE html>
<html>
<head>
<title><%= ENV['USERNAME'] %></title>
</head>
<body>
<%= yield %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后部署到heroku并运行
heroku config:set USERNAME=gwho
你应该在页面标题处看到'gwho'.
有关Heroku配置变量的更多详细信息:https://devcenter.heroku.com/articles/config-vars
有关Rails 4.1 secrets.yml的更多详细信息:http://edgeguides.rubyonrails.org/4_1_release_notes.html#config/secrets.yml
归档时间: |
|
查看次数: |
4479 次 |
最近记录: |