【发布时间】:2014-03-07 14:11:21
【问题描述】:
Rails 新手。按照 Hartl 的教程,他使用此代码为 config/initializers/secret_token.rb 动态生成秘密令牌
require 'securerandom'
def secure_token
token_file = Rails.root.join('.secret')
if File.exist?(token_file)
# Use the existing token.
File.read(token_file).chomp
else
# Generate a new token and store it in token_file.
token = SecureRandom.hex(64)
File.write(token_file, token)
token
end
end
SampleApp::Application.config.secret_key_base = secure_token
我正在尝试使用 secrets.yml 遵循新的 Rails 4.1 方式,并删除 secret_token.rb:
development:
secret_key_base: 79c1389c2fadc5a5a1918a5104ab34eb700c
test:
secret_key_base: fdb4edcde14173d62963705ca4d7876b5307790924
production:
secret_key_base: 85172605030a8225c083d886d066da2cb4aac1f0
但我认为您不能像在 yml 文件中的 secret_token.rb 中那样运行 ruby 脚本。您将如何让 Rails 动态生成秘密令牌。这应该怎么做?最佳做法是什么?
【问题讨论】:
标签: ruby-on-rails security ruby-on-rails-4