在 Rails 中处理 Oauth Consumer Key 和 Secret 的正确方法是什么?



我有一个使用OAuth连接到Facebook的Rails应用程序。我正在寻找有关如何处理我从Facebook获得的OAuth密钥和秘密的完整描述。

  1. 在哪里存储它们?
  2. 如何将它们存储在那里?我看到一个答案说它应该是一个 env 变量,但我正在寻找细节:如何将它们添加到 env?手动地?脚本?什么剧本?它应该在哪里?源代码管理呢?生产呢?
  3. 为了在开发、测试和生产中实现解决方案,我应该知道的任何其他细节。

我见过这个问题的一些变体,但从来没有一个完整而详细的答案。

我真的在寻找整体流程,但也需要所有看起来微不足道但对于理解这一点很重要的小细节。

您需要将密钥和特定于环境的配置存储在代码之外。您应该以一种允许您在公共存储库(例如 github)上发布源代码的方式存储这些源代码,而不会忽略源代码管理中的任何文件。这是十二因素方法论的原则。

无论如何,为了回答您的问题,您可以将这些键添加为 shell 变量。这假设您正在 *nix 上进行开发。

$ echo "export OAUTH_SECRET='kie92j8fKEHHE92Va1njk3'" >> ~/.bash_profile

现在,在 Rails 代码中,您可以访问所有环境变量:

ENV["OAUTH_SECRET"]

可以在部署脚本中设置这些环境变量,该脚本会在命令行上提示您输入这些变量。这也允许团队中的每个开发人员拥有自己的密钥。

大多数人创建自己的config.yml。这很容易做到。以下是创建 config.yml 的详细说明

相关内容

最新更新