我应该在哪里将钥匙放在Rails应用程序上?

时间:2018-07-24 17:28:27

标签: ruby-on-rails ruby push-notification ruby-on-rails-5 web-push

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

this part at tutorial,他说:

“使用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应用程序中将这些键放在哪里?

2 个答案:

答案 0 :(得分:3)

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

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

您还可以将env变量与secrets.yml文件组合在一起,例如:

secrets.yml

...
 key: ENV['NAME']

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

注意:必须将您的凭据文件共享给git或任何公共仓库!如果您需要与其他开发人员共享此文件,只需向他们发送带有开发密钥的副本。

链接:

dotenv

environment variables

secrets.yml

答案 1 :(得分:0)

我写了a gem来解决这个问题,因为Rails不再支持secrets.yml.

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