2012-11-04 46 views
1

我有一個簡單的管理應用,我希望通過基本的HTTP驗證來保護。這是我在我的config.ru。這不起作用。我錯過了什麼?使用Rack :: Auth :: Basic保護所有路由

use Rack::Auth::Basic do |user, pass| 
    pass == ENV['ADMIN_PASS'] 
end 

run Rack::URLMap.new(
    '/' => Rack::File.new('./public/index.html') 
    '/resque' => Resque::Server.new, 
    '/mongo' => Genghis::Server.new 
) 
+0

難道是因爲您的瀏覽器緩存AUTH頭?嘗試改變ENV ['ADMIN_PASS'],這應該踢你登錄提示。 – 2012-11-05 12:44:44

+0

謝謝,但我已經嘗試過。還嘗試在不同的瀏覽器中使用乾淨的緩存。沒有骰子。 –

+1

什麼機架服務器你試試這個?只是在霰彈槍,獨角獸和薄試了它們,他們都好像! – 2012-11-05 12:47:41

回答

0

架::驗證::基本需要一個管理員/密碼陣列,所以你可以這樣做:

use Rack::Auth::Basic, "Restricted Area" do |username, password| 
    [username, password] == [ 'admin', ENV['ADMIN_PASS'] ] 
end 
+0

問題是我從來沒有提示用戶/通行證。 –