2012-07-11 100 views
5

密码保护视图的最佳方式是什么?我已经在生成密码,但我不想要用户名和密码登录,只需输入密码。我有密码目前存放在文件类的属性,并使用此:Rails仅密码登录

before_filter :restrict, :only => :show  

authenticate_or_request_with_http_basic do |password| 
    password == @file.password 
end 

但是,它仍然会提示用户输入用户名和正确的,因为它缺少一个用户名不能登录。有没有办法使用这种方法,只有提示只需要输入密码?如果不是这样做的最好方法是什么?

+0

你可以直接尝试没有文件吗?只是一个简短的测试:http_basic_authenticate_with:password =>“foo”...相同的结果? – glenn 2012-07-11 15:51:58

+0

由于我不完全明白手动设置密码为“测试”时的原因,我无法访问该视图,除非我在用户名和密码中都有“测试”。 现在我正在寻找一个弹出对话框来询问密码,然后验证。知道渲染弹出窗口的任何好的宝石(可能只是用Javascript做它)? – user1470511 2012-07-11 16:04:01

回答

3

authenticate_or_request_with_http_basic是使用HTTP基本验证实现的,需要用户名和密码的组合:

类似。如果你想启用仅密码验证,你将不得不编写自己的验证方法

before_filter :restrict, :only=>:show 

def restrict(password) 
    render :status=>401, :text=>"Unathorized" unless password == @file.password 
end 
-4

为什么不直接在新活动(onCreate)的开始处进行检查,并在密码为false时返回上一个活动?要输入

if (password.equals(password)){ 
contiue activity 
}else{ 
//return to previous tread 
finish() 
} 
+1

这是一个轨道问题 – 2012-07-11 15:42:16

+0

ohh,sh ** t,Thougt这是一个Android问题...该死的,怎么得到一些好点.. *讽刺 - 我很抱歉.. – 2012-07-11 16:25:30