Autenticación de Usuarios con Devise en Rails
Clase 23 de 36 • Curso de Introducción a Ruby on Rails
Contenido del curso
- 6

Arquitectura MVC y Flujo de Peticiones en Rails
07:22 - 7

Creación y Configuración de Aplicaciones Web con Ruby on Rails
11:18 - 8

Creación de Rutas y Controladores en Ruby on Rails
10:15 - 9

Creación de Modelos y Migraciones en Ruby on Rails
13:12 - 10

Gestión de Credenciales Seguras en Ruby on Rails
11:57 - 11

Gestión de Assets y Layouts en Rails: Asset Pipeline y Webpacker
12:31 - 12

Uso del Generador Scaffold en Ruby on Rails
10:51 - 13

Migraciones y Consistencia de Modelos en Rails
05:57 - 14

Migración de Plantillas ERB a Haml en Ruby on Rails
08:47 - 15

Creación de Formularios Dinámicos con SimpleForm y Haml en Rails
12:19 - 16

Internacionalización de Aplicaciones Rails con i18n y i18n-tasks
09:29 - 17

Debugging en Ruby on Rails: Uso de Bybug y Pry
09:03
- 18

Desarrollo de un Sistema de Gestión de Tareas con Ruby on Rails
05:35 - 19

Diseño de Modelos de Datos para un Organizador de Tareas
05:46 - 20

Creación de Scaffolds y Modelos en Rails con SimpleFrame y Bootstrap
10:08 - 21

Internacionalización de Formularios en Rails con i18n y SimpleForm
11:03 - 22

Validaciones de Modelos en Ruby on Rails
10:42
- 23

Autenticación de Usuarios con Devise en Rails
11:42 - 24

Migración de Llave Foránea: Enlazar Tarea con Usuario en Rails
05:46 - 25

Integración Visual y Estructural en Rails: Usuario, Tarea y Participante
09:54 - 26

Manejo de Formularios Anidados con Cocoon en Rails
12:25 - 27

Formularios Dinámicos en Rails con Cocoon y Validaciones de Unicidad
09:36 - 28

Permisos y Accesos con KanKan en Aplicaciones Rails
14:13
- 29

Callbacks en Controladores y Modelos en Rails
08:59 - 30
Automatización de Inserción de Datos en Rails con db:seed
07:38 - 31

Envío de Correos con ActionMailer en Rails
13:25 - 32

Creación de notas dinámicas en tareas con Ruby on Rails
17:08 - 33

Inserciones Dinámicas de Notas con AJAX y SJR en Rails
09:12 - 34
Mejora de Interfaces con Bootstrap en Aplicaciones Rails
16:19
¿Cómo añadir autenticación de usuarios con la gema Devise en Rails?
Integrar un sistema de autenticación de usuarios es fundamental para proteger nuestra aplicación de accesos no autorizados. En el framework Ruby on Rails, la gema Devise es una de las herramientas más populares y robustas para lograrlo. Esta guía te llevará paso a paso en el proceso de implementación.
¿Cómo iniciar la instalación de Devise?
Para comenzar a usar Devise, se debe instalar mediante el archivo Gemfile. Esta gema ofrece una serie de plugins que configuran un sistema de autenticación robusto y personalizable.
-
Agregar la gema al Gemfile:
gem 'devise' -
Ejecutar el comando
bundle install: Esto instalará la gema y sus dependencias en tu proyecto Rails. -
Generar configuraciones iniciales de Devise:
Ejecutar el generador de Devise para añadir todas las configuraciones necesarias:
rails generate devise:installEsto creará archivos de configuración de inicialización y de internacionalización, los cuales puedes personalizar, por ejemplo, traduciendo los mensajes al español.
¿Cómo se crea un modelo de usuario con Devise?
Con Devise, no es necesario crear un modelo de usuario desde cero. Puedes utilizar su generador para establecer un modelo listo para gestionar sesiones y autenticación.
-
Generar el modelo de usuario:
rails generate devise UserCrear el modelo
Usercon los siguientes módulos predeterminados:database_authenticatable: Autenticación a través de la base de datos.registerable: Permite el registro de usuarios.recoverable: Gestión de recuperación de contraseñas.rememberable: Recordar usuarios a través de cookies.validatable: Validación de email y contraseñas.
-
Correr las migraciones:
rails db:migrateEsto creará la tabla
usersen la base de datos con los campos necesarios definidos por Devise.
¿Cómo configurar las rutas de acceso con Devise?
Devise introduce un nuevo concepto de rutas a través del método devise_for.
-
Configurar las rutas en
config/routes.rb:devise_for :usersEste método añade todas las rutas necesarias para gestionar la autenticación de usuarios, como el registro, inicio y cierre de sesión.
-
Consultar las rutas: Utiliza
rails routesen la consola para revisar las rutas generadas.
¿Cómo establecer restricciones de acceso en la aplicación?
Para controlar el acceso a las diferentes partes de la aplicación, utilizamos un before_action en el controlador principal.
-
Modificar el
ApplicationController:Dentro del archivo
app/controllers/application_controller.rb, añade:before_action :authenticate_user!Esto garantiza que solo los usuarios autenticados puedan acceder a las rutas protegidas.
¿Cómo añadir enlaces de inicio y cierre de sesión?
Para mejorar la usabilidad, puedes agregar botones de inicio y cierre de sesión en la vista de la aplicación.
-
Modificar la vista principal (
app/views/layouts/application.html.erb):<% if user_signed_in? %> <%= link_to 'Cerrar sesión', destroy_user_session_path, method: :delete %> <% else %> <%= link_to 'Iniciar sesión', new_user_session_path %> <% end %>El método
link_toes un helper que facilita la creación de enlaces. Aquí usamos rutas proporcionadas por Devise para gestionar sesiones.
Para terminar, siempre reinicia el servidor cada vez que instales una nueva gema para asegurarte de que los cambios se apliquen correctamente. Adoptar Devise mejora la seguridad de tu aplicación, protegiéndola contra accesos no autorizados y ofreciendo una experiencia de usuario coherente y segura. ¡Sigue explorando las capacidades de Devise para mejorar y personalizar aún más tu sistema de autenticación!