2012-07-11 17 views
5

¿Cuál es la mejor forma de proteger con contraseña una vista? Ya estoy generando una contraseña, pero no quiero un nombre de usuario y contraseña, solo la contraseña. Tengo la contraseña que se almacena en la actualidad como un atributo de la clase File, y estaba usando esto:Raíles Inicio de sesión solo por contraseña

before_filter :restrict, :only => :show  

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

Sin embargo, todavía se solicita al usuario un nombre de usuario y no conectarse correctamente porque falta un nombre de usuario . ¿Hay alguna manera de utilizar este método y solo solicitar que se le solicite solo la contraseña? Si no, ¿cuál es la mejor manera de hacerlo?

+0

¿Puede intentarlo directamente sin archivo? solo para una breve prueba: http_basic_authenticate_with: password => "foo" ... ¿el mismo resultado? – glenn

+0

por razones que no entiendo completamente al configurar la contraseña manualmente para "probar" no puedo acceder a la vista a menos que tenga "prueba" en el nombre de usuario y la contraseña. Ahora estoy buscando encontrar un diálogo emergente para pedir la contraseña y luego verificar. ¿Conoces alguna buena gema que represente ventanas emergentes (aunque solo podría estar haciéndolo en Javascript)? – user1470511

Respuesta

3

authenticate_or_request_with_http_basic se implementa utilizando autenticación básica de HTTP que requiere la combinación de nombre de usuario y contraseña a introducir. Si desea habilitar la autenticación solo con contraseña, tendrá que escribir su propio método de autenticación

before_filter :restrict, :only=>:show 

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

¿Por qué no hacer un control al comienzo de la nueva actividad (onCreate) y volver a la actividad anterior si la contraseña es falsa?

algo como:

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

Esta es una pregunta de rails –

+0

ohh, sh ** t, pero era una pregunta de Android ... maldita sea, qué manera de obtener un buen punto ... * sarcasmo -Lo siento .. –

Cuestiones relacionadas