Estoy usando Devise's built in before_filter :authenticate_user!
. Quiero llamar a mi propio método personalizado en mi asistente de aplicaciones si un usuario falla el filtro anterior (intenta realizar una acción cuando se cierra la sesión). ¿Cómo y dónde puedo hacer esto?before_filter con el dispositivo
Respuesta
Escribo un filtro personalizado antes que usa user_signed_in?
. Esto solo devolverá un booleano y no realizará ninguna de las acciones de redirección que hace authenticate_user!
.
Por lo tanto, se podría escribir un filtro antes de la siguiente manera:
before_filter :custom_user_auth
...
def custom_user_auth
unless user_signed_in?
# Do custom stuff, ultimately restricting access to the
# ...protected resource if it needs to be
end
end
tenga en cuenta que esto antes filtro no protegerá su recurso de usuarios no autorizados a menos que el área dentro de esa declaración unless
redirige o presta.
¿Puedo poner el método en mi controlador de aplicación? – user730569
Si planea utilizar el filtro anterior en varios controladores, cada uno de los cuales amplía el ApplicationController, entonces definiría la función allí. Sin embargo, definitivamente no pondría la línea 'before_filter' en el controlador de la aplicación, ya que probablemente solo quiera usar esto en ciertas instancias. – andrewmitchell
En lugar de llamar al before_filter :authenticate_user!
, escriba su propia función en su controlador que llame al authenticate_user!
. Algo como:
before_filter :logged_in
...
private
def logged_in
your_function
authenticate_user!
end
- 1. before_filter con parámetros
- 2. before_filter con otro controlador
- 3. Anulando un before_filter con RSpec
- 4. before_filter: require_owner
- 5. Configuración manual de return_to con el dispositivo
- 6. before_filter y respond_to formatos
- 7. Omitir before_filter en Rails
- 8. before_filter no canceling action
- 9. Diseñar before_filter authenticate_admin?
- 10. Modelo de rieles "before_filter"?
- 11. Especifique qué controladores excluir de before_filter
- 12. Lista blanca con el dispositivo
- 13. ¿Cómo implementa los rieles before_filter?
- 14. Múltiples declaraciones before_filter para correct_user y admin
- 15. Redirigir Diseñar before_filter: authenticate_user para iniciar sesión en la ruta
- 16. Llamar before_filter solo para controladores específicos
- 17. rieles before_filter de acciones específicas en el controlador
- 18. OmniAuth before_filter para requerir el inicio de sesión
- 19. sintaxis before_filter cuando quiere "exceptuar" el controlador "abc"
- 20. RSpec in Rails: cómo omitir un before_filter?
- 21. Ruby on Rails: before_filter =>: only_when_user_is_logged_in
- 22. ¿Cómo recuperar la información del dispositivo Bluetooth con el selector de dispositivo Android con Bluetooth?
- 23. Rieles before_filter e identificación de acción
- 24. Amazon EC2: intercambie el dispositivo de almacenamiento de instancias raíz con el dispositivo EBS
- 25. Desactivar el dispositivo
- 26. Dispositivo USB HID con Android
- 27. Recurso anidado con dispositivo - Rails3
- 28. Dispositivo de integración con Mongoid
- 29. Reconectando al dispositivo con pySerial
- 30. Descarga de archivos Phonegap en el dispositivo: ¿qué dispositivo tomar?
Considera utilizar CanCan para obtener autorización. –