Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我应该如何在RubyonRails中存储API的登录详细信息?_Ruby On Rails_Ruby_Api_Login_Passwords - Fatal编程技术网

Ruby on rails 我应该如何在RubyonRails中存储API的登录详细信息?

Ruby on rails 我应该如何在RubyonRails中存储API的登录详细信息?,ruby-on-rails,ruby,api,login,passwords,Ruby On Rails,Ruby,Api,Login,Passwords,我使用的是Active Shipping Gem/API,您需要有登录名和密码才能连接到各种邮政服务,例如联邦快递或加拿大邮政。目前,我已将每个服务的这两个部分硬编码到控制器中的一个单独方法中。我欢迎关于如何更安全地执行此操作的建议。谢谢您可以在单独的文件中为所有密码执行此操作,然后不将该文件签入任何公共回购。为此,您需要修改应用程序.rb以查找包含所有密码的文件: config/application.rb ... # Moving ENV variables into one place (

我使用的是Active Shipping Gem/API,您需要有登录名和密码才能连接到各种邮政服务,例如联邦快递或加拿大邮政。目前,我已将每个服务的这两个部分硬编码到控制器中的一个单独方法中。我欢迎关于如何更安全地执行此操作的建议。谢谢

您可以在单独的文件中为所有密码执行此操作,然后不将该文件签入任何公共回购。为此,您需要修改
应用程序.rb
以查找包含所有密码的文件:

config/application.rb

...
# Moving ENV variables into one place (config/application.yml)
config = YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))
config.merge! config.fetch(Rails.env, {})
config.each do |key, value|
  ENV[key] = value unless value.kind_of? Hash
end
...
module Myapp
  class Application < Rails::Application
  ...
然后,您可以通过环境变量在整个应用程序中访问此信息:

ENV['AWS_ACCESS_KEY_ID']
无论你通常把密码放在哪里

这使得在一个地方更改任何内容都变得很容易,并且更容易管理哪些开发人员可以查看敏感信息

编辑

如果您有订阅,上面还有一个不错的Railscast:

ENV['AWS_ACCESS_KEY_ID']