Coder Social home page Coder Social logo

login-with-jwt's Introduction

Desafío de programación: Crear un inicio de sesión con JWT usando Express y PostgreSQL

Este desafío de programación consiste en crear un inicio de sesión que utilice JWT para autenticar a los usuarios en el lado del servidor utilizando Express y PostgreSQL. Además, se debe verificar la validez del JWT utilizando Thunder Client o cualquier otra herramienta similar.

Requisitos previos

Para completar este desafío de programación, se requiere conocimientos previos de:

  • JavaScript
  • Express
  • PostgreSQL
  • JWT

Pasos

  1. Crea una base de datos en PostgreSQL con el nombre "users" y una tabla con el nombre "users". La tabla deberá tener los siguientes campos:
id (INTEGER, PRIMARY KEY, AUTO_INCREMENT)
email (VARCHAR(255), UNIQUE, NOT NULL)
password (VARCHAR(255), NOT NULL)
  1. Instala los siguientes paquetes npm:
npm install express pg jsonwebtoken
  1. Crea un archivo index.js en el directorio raíz de tu proyecto.

  2. En el archivo index.js, crea una instancia de Express y configúrala para que use el middleware express.json().

  3. Conéctate a la base de datos PostgreSQL utilizando el paquete pg.

  4. Crea dos rutas en tu servidor Express: /signup y /login.

  5. En la ruta /signup, crea un endpoint POST que reciba una solicitud con los campos email y password. Verifica que el correo electrónico no exista en la base de datos y, si es así, hasheé la contraseña y guárdala junto con el correo electrónico en la tabla users. Luego, crea y firma un JWT que contenga el ID del usuario y envíalo en la respuesta.

  6. En la ruta /login, crea un endpoint POST que reciba una solicitud con los campos email y password. Verifica que el correo electrónico exista en la base de datos y que la contraseña ingresada sea correcta. Si todo es correcto, crea y firma un JWT que contenga el ID del usuario y envíalo en la respuesta.

  7. Crea una función middleware que verifique la validez del JWT en cada solicitud. Si el JWT es válido, almacena el ID del usuario en req.user.

  8. Agrega la función middleware creada en el paso anterior a todas las rutas que requieran autenticación.

  9. Finalmente, utiliza Thunder Client o cualquier otra herramienta similar para enviar solicitudes a tus rutas /signup y /login y verificar que la autenticación funciona correctamente.

Conclusiones

Este desafío de programación ha demostrado cómo crear un inicio de sesión que utilice JWT para autenticar a los usuarios en el lado del servidor utilizando Express y PostgreSQL. Además, se ha verificado la validez del JWT utilizando Thunder Client o cualquier otra herramienta similar. Este proceso puede ser escalable y adaptable a diferentes proyectos de desarrollo web.

login-with-jwt's People

Contributors

hx-mluquez avatar

Stargazers

Jose Dirazar avatar  avatar

Watchers

 avatar

Forkers

josedirazar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.