Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 Rails 4存储用于全局访问的Api和密钥_Ruby On Rails_Ruby On Rails 4_Constants - Fatal编程技术网

Ruby on rails Rails 4存储用于全局访问的Api和密钥

Ruby on rails Rails 4存储用于全局访问的Api和密钥,ruby-on-rails,ruby-on-rails-4,constants,Ruby On Rails,Ruby On Rails 4,Constants,我们在整个应用程序中集成了几个api。我们从很多地方调用api 我们希望全球化常量,使其可用,并且可以在任何地方调用 这样做,我们不需要改变api和秘密在多个地方,如果我们必须改变细节 要实现这一点,您可以存储API密钥和机密,而无需将它们签入源代码管理,一种解决方案是将它们存储在YAML文件中,然后将其包含在应用程序.rb文件中。然后可以从应用程序中的任何位置调用它们 要了解如何做到这一点,您可以在上面观看本集。YAML文件是一个很好的解决方案。另一种方法是将密钥存储在数据库中。您可以创建如下

我们在整个应用程序中集成了几个api。我们从很多地方调用api

我们希望全球化常量,使其可用,并且可以在任何地方调用


这样做,我们不需要改变api和秘密在多个地方,如果我们必须改变细节

要实现这一点,您可以存储API密钥和机密,而无需将它们签入源代码管理,一种解决方案是将它们存储在YAML文件中,然后将其包含在
应用程序.rb
文件中。然后可以从应用程序中的任何位置调用它们


要了解如何做到这一点,您可以在上面观看本集。

YAML文件是一个很好的解决方案。另一种方法是将密钥存储在数据库中。您可以创建如下表: api提供程序名称 钥匙 秘密

通过这种方式,您可以通过简单的activerecord请求将凭据拉到任何需要的地方@credentials=ApiKeys.where(provider:“Google”)-为了获得额外的安全性,您可以对它们进行哈希/盐析,但通常我认为您是唯一可以访问生产数据库的人。我不喜欢在“某个开发者”的笔记本或PC上存储凭据。最后,密钥无处不在,你必须确保每个人都有最新版本


另一方面,直接从应用程序调用API是一个非常糟糕的主意。你应该使用一个后台工作人员,比如Sidekiq或Resque

多谢各位。我去看看。如何将它们存储在config/constants.rb中?问题是,它很可能会被检查到您的版本控制系统中,这是一种非常糟糕的做法,而且非常不安全。