将HTTP基本身份验证添加到routes.rb中的某些路由

时间:2012-08-24 22:09:55

标签: ruby-on-rails-3 authentication

我想在我的routes.rb文件中为我的一些路由添加HTTP基本身份验证。

我从http://asciicasts.com/episodes/271-resque

得到了这个想法

routes.rb

Coderbits::Application.routes.draw do  
  resources :snippets  
  root :to => "snippets#new"  
  authenticate :admin do  
    mount Resque::Server, :at => "/resque"  
  end  
end

config/initializers/resque_auth.rb

Resque::Server.use(Rack::Auth::Basic) do |user, password|  
  password == "secret"  
end 

如果我只想保护我的rails应用程序中的路由,我应该在初始化程序文件中添加什么内容?

我现在的工作是在我的应用程序控制器中添加一个前置过滤器,如果请求不适用于我已列入白名单的控制器:

authenticate_or_request_with_http_basic do |user, password|
  user == ENV["ADMIN_USER"] && password == ENV["ADMIN_PASS"]
end

1 个答案:

答案 0 :(得分:6)

我只是把

  http_basic_authenticate_with :name => "admin", :password => "secret"

在我的控制器内