在 Rails 应用程序中使用秘密密码

Using secret passwords in Rails App

我正在处理一个 rails 应用程序,如果某个过程发生,我需要在 github 上发送问题。要发送 post 请求,我需要使用我的 github 用户名和密码。我无法在 open 中使用我的密码。我该怎么办?

我对 rails 配置中的 secrets.yml 文件有所了解,但我什至不能将密码放在那里。我会将我的应用程序放在 github 上,这样任何人都可以访问。我应该如何使用 secrets.yml 文件来存储我的密码并在我的 rails 应用程序中使用它?

您不应该将 secret.yml 提交到您的 git 存储库。包含生产机密的 secret.yml 应该只存在于服务器上(并且只能由服务器管理员访问)。

此外,您可能希望使用 API 令牌代替您的用户名和密码,因为 API 令牌更容易更改。

2 个选项:

  1. 将其设置为 environmental variable。具体如何操作在很大程度上取决于您使用的操作系统。有很多教程介绍如何执行此操作以及如何从 Rails 应用程序访问它。这些变量仅在本地可见,当您将代码推送到 GitHub.

  2. 时不会看到
  3. 将您的 secrets.yml 添加到您的 .gitignore 文件。如果您没有 .gitignore 文件,请在项目的根目录中创建一个。然后,只需将 secrets.yml 添加到该文件即可。一旦你这样做了,git 将在任何提交、推送等中永远忽略该文件,并且如果你将代码推送到 GitHub 也不会显示。但是,如果您已经有一个 secrets.yml 文件并且之前已被 git 跟踪过,您需要删除该文件的历史记录。有关如何执行此操作的详细信息,请参见 here.

这可能是适合您的解决方案。

https://github.com/attr-encrypted/attr_encrypted

您可以加​​密密码并将其保存到分配给用户的数据库中(当然如果您有的话)。

如果您没有用户,那么您将陷入环境变量和 secrets.yml 或其他类似解决方案