开发部分中 secrets.yml 中的 OAuth 凭据

Posted

技术标签:

【中文标题】开发部分中 secrets.yml 中的 OAuth 凭据【英文标题】:OAuth credentials in secrets.yml in development section 【发布时间】:2017-07-03 07:11:21 【问题描述】:

我的 Rails 应用程序使用 OAuth 身份验证。对于生产凭证,我使用 dotenv gem。配置/secrets.yml:

production:
  secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>
  facebook_app_id: <%= ENV['FACEBOOK_APP_ID'] %>
  facebook_app_secret: <%= ENV['FACEBOOK_APP_SECRET'] %>

为了测试,我使用了专门注册的 Facebook 应用程序,该应用程序具有“redirect_uri”到http://localhost。

我应该对“开发”部分使用相同的方法,还是可以编写注册用于测试的应用程序的信誉?我如何理解没有人可以使用它(用于钓鱼网站),因为在应用程序的设置中有指向“localhost”的“redirect_uri”。

【问题讨论】:

【参考方案1】:

建议不要暴露信用,即使是为了测试。您应该对开发和测试采用相同的方法。此外,将包含所有凭据的文件添加到 .gitignore

【讨论】:

你能解释一下为什么推荐它吗?以这种形式分发开源应用程序更容易(当有测试凭据时)。其他开发人员可以更快地运行测试套件。 开源的情况就不同了。对于私有存储库,您不想公开有关您的应用程序的信息,这就是建议不要公开凭据的原因。

以上是关于开发部分中 secrets.yml 中的 OAuth 凭据的主要内容,如果未能解决你的问题,请参考以下文章

Rails 5.1 Capistrano 使用 secrets.yml.key 部署

Rails:无法使用新的`config / secrets.yml`

在AWS上使用Capistrano的Rails secrets.yml VS Dotenv VS Figaro

Rails 4:在本地主机上重新验证“无效的站点密钥”

Rails Production - 如何设置密钥库?

Oaut2RestTemplate 与 client_credentials 错误(不允许匿名)