2013-04-04 90 views
1

我有一個公共的Github回購爲我想添加身份驗證的應用程序。我打算使用基本的http身份驗證,但這需要我將用戶名和密碼存儲在公開的配置文件(或類似的文件)中。保持http身份驗證私人在公共github回購?

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

有沒有辦法保證認證安全(即私人)而不創建一個完全私人的回購?

或者也許是在Heroku推送過程中繞過Github的一種方式,以便實時(Heroku)環境接收認證憑證而不必從公共Github回購中檢索它們?

編輯:感謝您的答覆。他們可能很好地解決了我的問題,但不幸的是他們有點超出了我的技能水平。我認爲我最好的選擇是在研究身份驗證和環境變量之前學習更多。再次感謝!

回答

4

Heroku實際上有這樣的解決方案,你可以使用config vars。在你的應用程序中使用

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

等等,那麼你可以訪問的變量:在終端或CMD您可以通過運行添加配置變量

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

Heroku Configuration Variables

這是這是實現你想要的並且對公衆安全的最安全的方式。

2

執行此類事情的規範方法是將憑證放入環境變量或外部文件中。我發現最容易的環境變量,尤其是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