我应该把钥匙放在rails应用程序的哪里



我正在尝试使用gem-webpush在我的rails应用程序中创建推送通知。

在教程的这一部分,他说:

"使用webpush生成一个同时具有public_key和private_key属性的VAPID密钥,以便保存在服务器端。">

# One-time, on the server
vapid_key = Webpush.generate_key
# Save these in your application server settings
vapid_key.public_key
vapid_key.private_key

我的疑问是:"应用程序服务器设置"究竟是什么?我应该把这些钥匙放在我的rails应用程序的哪里?

理想情况下,它应该存储在environment variables中(取决于您使用的操作系统(。如果您正在使用dotenv-gem,并且发现在生产中使用dotenv很方便,则可以将其存储在.env文件中。要使用变量,请使用ENV['NAME']

也可以为此使用默认的railsconfig/secrets.yml文件。要使用变量,请使用Rails.application.secrets.name

此外,您还可以将env变量与secrets.yml文件组合,如:

secrets.yml

...
key: ENV['NAME']

优点:使用独立于rails环境的变量。

注意:永远不要将您的凭据文件共享到git或任何公共repo!如果您需要与其他开发人员共享此文件,只需将带有开发密钥的副本发送给他们即可。

链接:

dotenv

环境变量

secrets.yml

既然Rails不再支持secrets.yml.,我写了一个gem来帮助解决这个问题

提醒:您永远不应该在提交给您的版本控制的文件中存储私钥或任何其他秘密变量,请使用环境变量。

最新更新