我正在尝试使用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来帮助解决这个问题
提醒:您永远不应该在提交给您的版本控制的文件中存储私钥或任何其他秘密变量,请使用环境变量。