http_basic_authenticate_with和authenticate_or_request_with_http_basic有什么区别?

时间:2013-03-27 15:39:17

标签: authentication ruby-on-rails-3.2

之间有什么区别
http_basic_authenticate_with()

authenticate_or_request_with_http_basic()

方法

感谢您的完整解释。

1 个答案:

答案 0 :(得分:22)

docs中我可以理解,http_basic_authenticate_with充当接受名称和密码的前过滤器,例如

http_basic_authenticate_with :name => "dhh", :password => "secret", :except => :index

而authenticate_or_request_with_http_basic接受一个块,允许您插入一些代码以确定是否应对其进行身份验证(documentation)。 E.g。

before_filter :authenticate

def authenticate
  authenticate_or_request_with_http_basic('Administration') do |username, password|
    ActiveSupport::SecurityUtils.secure_compare(username, "admin") &&
    ActiveSupport::SecurityUtils.secure_compare(password, "password")
  end
end