我已经生成了简单的Rails api应用程序,但是Rails.application.secrets.secret_key_base
遇到了问题-它是nil
。我正在本地计算机上启动它。
根据{{3}},一切都会好起来的。我有正确的app/config/credentials.yml.enc
。当我尝试使用rails credentials:edit
对其进行编辑时,它会正确编辑。实际内容是
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: 47ba27802a354b44c1cd0d0c624fcde2dced69ccfe62d274e9ecfc98d9e6671c4cf31a29aaf77af555d9553811a3ff15f22ab060e5ec5ffc0d29f77241368272
在所有配置文件(/app/config/environments/*.rb
)中,我添加了config.require_master_key = true
-它无济于事。
我实际的Rails.application.secrets
内容是{:secret_key_base=>nil, :secret_token=>nil}
。我已经将其转储到我的自定义类和application_controller.rb
中,这两个地方的结果相同。
有什么想法我错过了吗?
PS。在您用重复的方式标记此问题之前-请注意,我使用的Rails 5.2的凭据存储已更改。
答案 0 :(得分:1)
尝试
[1] "12Apr18" "24Apr18" "06May18"
Rails.application.credentials.secret_key_base
与secret_base_key
不同:在将credentials
添加到凭据时,它仅作为凭据而不是秘密提供。
答案 1 :(得分:0)
我也遇到了同样的问题,最后我发现rails credentials:edit
并没有真正因为编辑器而保存(我正在使用VS代码)。当我用vim尝试时,它可以保存,并且一切都可以正常进行。因此,在运行命令时,尝试将编辑器设置为vim,
EDITOR=vi bin/rails credentials:edit
然后用:wq
保存,然后重试。
希望这可以解决问题:)