Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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应用程序中使用秘密密码_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 在Rails应用程序中使用秘密密码

Ruby on rails 在Rails应用程序中使用秘密密码,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在开发一个rails应用程序,如果某个进程发生,我需要在github上发送一个问题。要发送post请求,我需要使用我的github用户名和密码。我无法在open中使用我的密码。我该怎么办 我知道rails配置中的secrets.yml文件,但我甚至不能在那里输入密码。我将把我的应用程序放在github上,任何人都可以访问。我应该如何使用secrets.yml文件存储密码并在rails应用程序中使用它?您不应该将secret.yml提交到git存储库。包含生产机密的secret.yml应该只存

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


我知道rails配置中的
secrets.yml
文件,但我甚至不能在那里输入密码。我将把我的应用程序放在github上,任何人都可以访问。我应该如何使用secrets.yml文件存储密码并在rails应用程序中使用它?

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

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

2选项:

  • 将其设置为一个。具体如何操作在很大程度上取决于您使用的操作系统。有很多教程介绍如何这样做以及如何从Rails应用程序访问它。这些变量仅在本地可见,当您将代码推送到GitHub时将看不到

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


  • 这可能是一个很好的解决方案

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


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

    使用secrets.yml和使用环境变量。您将把secrets.yml存储为基,这样您就可以记住所需的秘密,但将秘密存储在env变量中。看看:我的环境变量导出到哪里来存储ubuntu linux系统中的密码?如果我使用ubuntu linux,我应该遵循什么步骤?如果我写
    ,那么我应该在哪里导出和写入密码?另一个问题是,如果我与某人合作,而他想要使用该应用程序,该怎么办?这是一个关于环境变量的非常通俗的教程,还有一个关于环境变量的很好的AskUbuntu问题。我建议编辑会话范围变量的
    ~/.profile
    文件。我还建议您使用更详细的变量名,例如
    GITHUB\u PASSWORD
    ,这样您就可以知道它是哪个密码,以防您有多个密码。如果您正在合作,只需让其他人设置一个具有相同名称和值的环境变量。如何通过此配置的travis ci测试?Travis无法知道我的密码,也无法按照Travis CI关于如何为您的测试定义环境变量的规定行事。如果您不信任Travis CI提供您的GitHub密码,您可能不应该使用他们的服务。