Agregando Autentificación con Devise
Created by Piotr Steininger, @polishprince
Updated by Ernesto Jimenez, @ernesto_jimenez
**Esta guía asume que ya tienes creada una aplicación RailsGirls ** siguiendo la guía desarrolla tu aplicación.
0.Agrega gema devise
Abre tu Gemfile
y agrega esta linea
y ejecute
para instalar la gema
1.Configure devise en tu aplicación
Ejecute el siguiente comando en la terminal.
2.Configure Devise
Asegúrese de tener definido las opciones por defecto para url en tus archivos “environments”. Abre config/environments/development.rb
y adicione esta línea:
Antes de la palabra clave end
.
Abre app/views/layouts/application.html.erb
y adicione:
justo encima de
Finalmente, si tu intención es publicar en heroku debes abrir config/application.rb
y adicionar esta línea:
como tercera línea desde la parte de abajo (antes de las dos ultimas palabras claves end
)
3.Configurar el modelo User (usuario)
Abrir el archivo app/views/ideas/show.html.erb
y quita la línea que dice:
Haz lo mismo para app/views/comments/show.html.erb
. Estas líneas no son necesarias porque ya hemos colocado la notificación en el archivo app/views/layouts/application.html.erb
.
Usaremos un script generador de paquetes para crear el modelo User(usuario)
Coach: Explique cual es el modelo que fue generado. ¿Cuáles son sus campos?
4.Crea tu primer usuario
Ahora que tienes configurado todo puedes crear tu primer usuario. Devise crea todo el código y rutas requeridas para crear cuentas, inicio de sesión, cierre de sesión, etc.
Asegúrese que su servidor rails se esta ejecutando, abre http://localhost:3000/users/sign_up, o en el caso de un servicio en la nube, adicione /users/signup
al url de la vista previa.
Cree una cuenta de usuario.
5.Agregar links de registro e inicio de sesión
Todo lo que necesitamos hacer ahora es adicionar apropiadamente links o avisos acerca del usuario que inicio sesión en la esquina superior derecha de la barra de navegación.
Para lograr hacer esto, editar app/views/layouts/application.html.erb
y agregar:
Justo despúes de
Finalmente, fuerza al usuario a redirigirse a la página de login si es que no se encuentra loggeado. Abre app/controllers/application_controller.rb
y agrega:
después protect_from_forgery with: :exception
.
Abre tu navegador y prueba iniciando y cerrando una sesión.
Coach: Hable acerca del user_signed_in?
y current_user
helpers. ¿Por qué son útiles?
¿Qué sigue?
- Agregar campos extra para el modelo User(usuario)
- Agregar relación entre usuarios e ideas
- Restringir que los usuarios solo puedan editar sus propias ideas
- Expandir para crear roles o permisos (use una de las más populares gemas de autorización como CanCan)