我有以下配置:
设计:database_authenticatable config.http_authenticatable = true
根据要求:
http://user:password@localhost:3000/
Devise忽略http auth登录并重定向到登录页面
有什么想法吗?
此致
答案 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)
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