保持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