Devise中的摘要式身份验证

Zep*_*ock 5 authentication ruby-on-rails devise ruby-on-rails-3

我正在使用Rails 3和Devise进行身份验证.我有一个适当的网站工作设计和API(json处理程序)的基本身份验证.如何启用摘要式身份验证?

他们的Wiki告诉我要添加

def http_authenticate
  authenticate_or_request_with_http_digest do |user_name, password|
    user_name == "foo" && password == "bar"
  end
  warden.custom_failure! if performed?
end
Run Code Online (Sandbox Code Playgroud)

我在哪里添加它以及如何使user_name/password匹配?

Ben*_*and 1

该维基条目确实假设了很多。

我最好的猜测是您需要将其添加到适当的控制器(或者应用程序控制器,如果您想要它用于所有内容)。

然后添加一个 :before_filter :http_authenticate! 您还可以尝试追踪该 wiki 页面的编写者并询问他们。

笔记。这依赖于 Warden 来执行您的身份验证 - Devise 仅处理帐户。

这些东西没有被很好地记录的原因之一是大多数人使用复杂的身份验证管理系统(例如 OmniAuth),以及其他用于权限/授权的系统,例如。如果您喜欢更轻量级的东西,则 DeclarativeAuthorization 或 CanCan 。

HTTPBasic(我认为是 Digest)往往不能很好地处理这些问题。