secret_token.rb
文件的内容包括一个长的随机字符串which is used to verify the integrity of signed cookies(例如用户登录到您的web应用时的用户会话).
Documentation说:
使用secret_token.rb
初始值设定项中现有的密钥库
因为这是一个重要的文件,你不能把它放到.gitignore,使用env变量存储secret_key_base
个值被视为一种良好做法:
创建.env
或.powenv
文件并将其存储为:
export SECRET_TOKEN="9489b3eee4eccf317ed77407553e8adc97baca7c74dc7ee33cd93e4c8b69477eea66eaedeb18af0be2679887c7c69c0a28c0fded0a71ea472a8c4laalal19cb"
然后在config/initializers/secret_token.rb
YourAppName::Application.config.secret_key_base = if Rails.env.development? or Rails.env.test? # generate simple key for test and development environments
('a' * 30) # should be at least 30 chars long
else
ENV['SECRET_TOKEN']
end
This article是(有点老,有点长)但确实充满了关于这个话题的有用信息.
UPDATE 04.05.15
从Rails 4.2开始,不再有secret_token.rb
个文件.
Have a read关于如何将现有应用升级到4.2.x根据创新.
从技术上讲,secrect_key_base
的用途是作为应用程序key_generator
方法的秘密输入(判断Rails.application.key_generator
).
Rails框架中的三个核心功能使用了应用程序的key_generator
,也就是secret_key_base
:
- 为可通过
- 导出HMAC签名cookie的密钥
- 为所有
查看更多关于article by @michaeljcoyne人中三人的信息.