难道有人请为我解释这里发生了什么?ruby on rails 3关于before_filter的问题
我觉得文档没有提及很多或描述发生了什么。它只是说这样使用这种方法。
如果用户名和密码为true,会发生什么情况,如果false等会发生什么?
class AdminController < ApplicationController
USERNAME, PASSWORD = "humbaba", "5baa61e4"
before_filter :authenticate
private
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == USERNAME &&
Digest::SHA1.hexdigest(password) == PASSWORD
end
end
end
感谢
“弹出的浏览器‘中输入您的用户名和密码’框”。我不太明白这一点。它会创建一个用户在信息中键入的框?在哪里以及如何?如果返回false,将显示哪个页面?有关详细信息的信息如此之少:/ – 2010-07-16 17:10:38
有一个[标准协议](http://en.wikipedia.org/wiki/Basic_access_authentication)用于通过HTTP进行身份验证。浏览器会在网页上方弹出自己的用户名和密码框。我不确定Rails为认证失败页面返回的内容,但它可能是非常通用的。你有没有试过运行这个代码,但看到它的行动?这是理解的最佳方式。 – Matchu 2010-07-16 17:14:08
[这里是一个演示,告诉你登录界面会是什么样的。](http://www.pagetutor.com/keeper/http_authentication/index.html)虽然你可能不应该将它用于公共Web应用程序,因为普通用户并不完全熟悉它。 – Matchu 2010-07-16 17:15:19