保持http身份验证私人在公共github回购?

问题描述:

我有一个公共的Github回购为我想添加身份验证的应用程序。我打算使用基本的http身份验证,但这需要我将用户名和密码存储在公开的配置文件(或类似的文件)中。保持http身份验证私人在公共github回购?

这意味着任何人都可以在公共配置文件中找到用户名和密码。

有没有办法保证认证安全(即私人)而不创建一个完全私人的回购?

或者也许是在Heroku推送过程中绕过Github的一种方式,以便实时(Heroku)环境接收认证凭证而不必从公共Github回购中检索它们?

编辑:感谢您的答复。他们可能很好地解决了我的问题,但不幸的是他们有点超出了我的技能水平。我认为我最好的选择是在研究身份验证和环境变量之前学习更多。再次感谢!

Heroku实际上有这样的解决方案,你可以使用config vars。在你的应用程序中使用

heroku config:add USERNAME=johndoe 
heroku config:add PASSWORD=password 

等等,那么你可以访问的变量:在终端或CMD您可以通过运行添加配置变量

ENV['USERNAME'] 
ENV['PASSWORD'] 

Heroku Configuration Variables

这是这是实现你想要的并且对公众安全的最安全的方式。

执行此类事情的规范方法是将凭证放入环境变量或外部文件中。我发现最容易的环境变量,尤其是Heroku。

这里的基本身份验证的使用凭证从环境变量(改编自Railscast #82控制器的例子:

class SomeController < ApplicationController 

    before_filter :authenticate 

protected 

    def authenticate 
    authenticate_or_request_with_http_basic do |username, password| 
     username == ENV['MYAPP_USERNAME'] && password == ENV['MYAPP_PASSWORD'] 
    end 
    end 

end 

然后你可以设置ENV瓦尔在你的开发环境中,如果一个shell启动文件。像这里是一个bash/zsh的风格例如:

export MYAPP_USERNAME=admin 
export MYAPP_PASSWORD=foobar 

要配置的Heroku:

heroku config:set MYAPP_USERNAME=admin MYAPP_PASSWORD=foobar