Ruby on rails Rails 4存储用于全局访问的Api和密钥
我们在整个应用程序中集成了几个api。我们从很多地方调用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密钥和机密,而无需将它们签入源代码管理,一种解决方案是将它们存储在YAML文件中,然后将其包含在
应用程序.rb
文件中。然后可以从应用程序中的任何位置调用它们
要了解如何做到这一点,您可以在上面观看本集。YAML文件是一个很好的解决方案。另一种方法是将密钥存储在数据库中。您可以创建如下表: api提供程序名称 钥匙 秘密 通过这种方式,您可以通过简单的activerecord请求将凭据拉到任何需要的地方@credentials=ApiKeys.where(provider:“Google”)-为了获得额外的安全性,您可以对它们进行哈希/盐析,但通常我认为您是唯一可以访问生产数据库的人。我不喜欢在“某个开发者”的笔记本或PC上存储凭据。最后,密钥无处不在,你必须确保每个人都有最新版本
另一方面,直接从应用程序调用API是一个非常糟糕的主意。你应该使用一个后台工作人员,比如Sidekiq或Resque 多谢各位。我去看看。如何将它们存储在config/constants.rb中?问题是,它很可能会被检查到您的版本控制系统中,这是一种非常糟糕的做法,而且非常不安全。