为html格式设计http basic auth

时间:2011-10-18 14:12:55

标签: ruby-on-rails devise http-basic-authentication

我有以下配置:

设计:database_authenticatable config.http_authenticatable = true

根据要求:

http://user:password@localhost:3000/

Devise忽略http auth登录并重定向到登录页面

有什么想法吗?

此致

2 个答案:

答案 0 :(得分:2)

http_authenticatable为您提供的是使用HTTP基本身份验证凭据登录其自己的身份验证系统的能力。您仍然需要自己编写http_auth块,如下所示:

def authenticate
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" && password == "bar"
  end
  warden.custom_failure! if performed?
end

此代码应该进入您的应用程序控制器。确保你使用的是warden.custom_failure !,否则设计将进入一个无限循环的重定向。

答案 1 :(得分:2)

This worked for me

  before_filter :check_auth

  def check_auth
    authenticate_or_request_with_http_basic do |username,password|
      resource = User.find(username)
      if resource.valid_password?(password)
        sign_in :user, resource
      end
    end
    warden.custom_failure! if performed?
  end