Documente Academic
Documente Profesional
Documente Cultură
Formación especializada TI
Strong Params
Cuando recibimos los parámetros por medio del método params podemos encapsular estos
parámetros para garantizar seguridad y reducir la reescritura de código. De esta manera atacantes
maliciosos pueden sobreescribir el formulario pero los parámetros que se reciben son solo los que
indicamos.
Delete confirm
Algunas funcionalidades de HTML y JavaScript las podemos agregar en el
método link_to como por ejemplo la confirmación de eliminar.
Autenticación de usuarios con Ruby on Rails
Autenticación WEB
Aprender la forma de autenticar usuarios es una parte básica del diseño web. La
autenticación permite que verifiques la identidad de un miembro y determines
qué nivel de acceso tiene en el sitio, como por ejemplo si es un miembro o un
administrador. Hay diferentes tipos de autenticación web disponibles. El elegido
depende en gran medida de qué tan confidencial es la información en el sitio
web y cuánto control deseas ejercer sobre los miembros que pueden acceder a
ella.
Autenticación básica HTTP
HTTP básica es el tipo más simple de autenticación web disponible. Esta forma
de autenticación solicita al usuario que inicie sesión con su nombre de usuario y
contraseña. Sin embargo, la información se transmite utilizando codificación
Base64. Esto significa que la información enviada no es cifrada y segura. En
teoría, la información podría ser interceptada por un tercero.
Autenticación digest HTTP
Los protocolos de autenticación Digest funcionan de manera similar a la autenticación
básica. El servidor solicita la información de identificación, que es suministrada por el
usuario en la forma de un nombre de usuario y una contraseña. El servidor, a continuación,
compara las credenciales con lo que está en archivo, y siempre y cuando coincidan,
concederá el acceso. Es un escenario de inicio de sesión sencillo.
También nos pide que tengamos definida una URL de root (saludo_controller) y nos pide
que creemos unas etiquetes en el layout para mostrar alertas y noticias por medio de los
métodos notice y alert.
Esto nos creara el modelo y su respectivo migrate. Ahora vamos a personalizar un poco
nuestra tabla ya que la que se crea por defecto tiene solo los campos basicos junto a
algunos de seguridad.
Devise routing
Cuando ejecutamos el generador de código de devise Usuario en routes también
nos agrego algunas rutas como cuando creamos un resource.
De esta manera podemos probar con algunas de estas rutas como esta
funcionando devise. Por ejemplo ingresemos a sign_up y creemos un usuario.
Devise funciones
Devise también nos provee de algunas funciones que podemos usar para validar
la presentación de nuestras vistas, es muy común por ejemplo que nos
apoyemos en la función usuario_signed_in? Para verificar si hay un usuario
logueado.
Devise funciones
Tambien podríamos agregar algunos links para iniciar sesión o para que creen
una cuenta.
Devise funciones
También podríamos cambiar el mensaje de la pagina de bienvenida para saludar
al usuario.
Devise vistas
Para poder personalizar las vistas de inicio de sesión y de creación de cuenta
debemos apoyarnos nuevamente en un generador de código que incluye devise.
Con este se generaran una serie de vistas para las funciones principales de
devise y podremos modificarlas a nuestro gusto.
Devise sessions new
Devise registrations new
Devise shared links
Asociaciones bases de datos
Ahora que ya tenemos una base de datos con dos tablas(tareas y usuarios) podríamos
conocer como funcionan las asociaciones entre tablas por medio de ActiveRecord de rails.
Podríamos hacer una asociación entre un usuario y las tareas que agrego. Es decir una
relación de uno a muchos. Para hacer esto debemos modificar la migración de la tabla
tareas y nos podemos apoyar en un generador de código de rails.
Esto nos va a crear la relación es decir va a agregar el campo usuario en la tabla tareas.
Ahora debemos agregar algunos requisitos en los modelos para que reconozca el tipo de
relación.
Relación uno a muchos
En el modelo Tarea vamos a indicar que se espera un usuario y en el modelo
Usuario vamos a indicar que este puede estar en muchas tareas.
Modificando métodos tareas_controller
Ahora como existe el campo usuario dentro de tareas para que podamos
incluirlo al crear una tarea podemos agregar el usuario actual al método créate.