Skip to content

Xxamer/Rails-JWT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rails-JWT

Esta es una API desarrollada en rails para probar la autenticación basada en token. Contiene login y registro de usuario aparte de "posts" para comprobar dicha autorización.

Creación de los ficheros necesarios

Los ficheros se han creado usando la orden rails g scaffold User name surname password_digest para los usuarios y rails g scaffold Posts name description para los posts.

Imgur

Imgur

Instalación de gemas

Las gemas necesarias las instalaremos en el fichero Gemfile, estas gemas son bcrypt, JWT y simple_command despues de esto ejecutamos bundle install.

Imgur

Pasos previos

En el fichero user.rb añadimos la línea has_secure_password para encriptar las contraseñas.

Imgur

En el fichero users_controller.rb en def user_params cambiamos los parámetros para añadir la contraseña y la confirmación de la contraseña en vez de "password_digest".

Antes

Imgur

Después

Imgur

En el fichero config/application.rb añadimos la línea config.autoload_path << Rails.root.jon('lib') para cargar los ficheros de configuración que posteriormente añadiremos a la carpeta lib. Imgur

Archivos de configuración

Dentro de la carpeta app crearemos la carpeta commands y dentro el fichero authenticate_user.rb.

Imgur

Dentro de la misma carpeta commands añadiremos otro fichero que será llamado authorize_api_request.rb que revisará que el token sea valido

Imgur

En la carpeta lib crearemos el archivo json_web_token.rb que contendrá los métodos para codificar y decodificar el token.

Imgur

En la carpeta controllers añadiremos un fichero llamado authentication_controller.rb que en caso de no tener autorización rechazará la petición con el estado de no permitido. Imgur

En el fichero application_controller.rb añadiremos el método "authenticate_request" que hará que antes de ejecutar cualquier petición a la API se compruebe la autenticación.

Imgur

Para permitir la creación de usuarios añadiremos que la autenticación solo sea necesaria en las peticiones de actualizacion y destrucción dentro del fichero application_controller.rb Imgur

Cómo último paso añadiremos en el fichero routes.rb la ruta para el controlador de la autenticación

Imgur

Comprobando el funcionamiento con Postman

Si intentamos acceder sin autenticación aparecerá el error 401 unauthorized Imgur

Crearemos un usuario de prueba con una contraseña y veremos que nos permite realizarlo ya que añadimos la línea de no realizar autenticación en las peticiones de creación Imgur

Y si realizamos una petición al end-point de autenticación con el usuario y la contraseña que pusimos a la hora de registrar el usuario nos devolverá el token de ese usuario

Imgur

About

This is a rails API only application to try the token based authentication with user login, registration and posts

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors