No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Crear Modelo y Controller de Usuarios

20/38
Recursos

¿Cómo asegurar nuestra aplicación web con autenticación de usuario?

Desarrollar aplicaciones web robustas no solo implica crear funcionalidades complejas, sino también asegurar que los usuarios puedan autenticarse y que sus datos estén protegidos. La autenticación es una capa clave de seguridad que nos ayuda a determinar quién está accediendo a nuestra aplicación y a qué permisos tiene acceso. En la actualidad, se implementan sistemas de autenticación de última generación a través de JSON Web Tokens (JWTs), una técnica moderna que ofrece una forma segura y sencilla de manejar las credenciales de usuario.

¿Cómo se construye el modelo de usuario?

Lo primero que necesitamos es establecer un modelo de datos para nuestros usuarios. Todo comienza creando un nuevo modelo de usuario que facilitará el registro y manejo de sesiones.

Para ello, podemos usar comandos de terminal para crear el modelo User que incluirá atributos esenciales como el correo electrónico (email) y la contraseña (password). El comando es bastante directo:

sequelize model:generate --name User --attributes email:string,password:string

Este comando generará un archivo JavaScript dentro del directorio de modelos, definiendo nuestro esquema de usuario con los tipos de datos necesarios.

¿Cómo se maneja la lógica de autenticación?

La idea es separar la lógica de manejo de llamadas y procesamiento dentro de un controlador específico para usuarios. Luego de crear el modelo, procedemos a generar un controlador con métodos para el inicio de sesión y registro, conocidos comúnmente como signup y login.

Podemos emplear el siguiente comando para crear un controlador con estos métodos:

sequelize controller:generate --name User --methods=signup,login

Este comando construirá un archivo controlador que contendrá métodos básicos predefinidos para manejar estas operaciones.

¿Cómo configurar las rutas para autenticación?

Una vez que los métodos del controlador están definidos, necesitamos configurar las rutas adecuadas que permitan interactuar con estas funcionalidades desde el exterior. Podemos agregar manualmente estas rutas en el archivo de rutas principal.

Las rutas para el registro e inicio de sesión podrían definirse de la siguiente manera:

app.post('/user/signup', userController.signup);
app.post('/user/login', userController.login);

Estas rutas deben coincidir con la estructura establecida en el controlador para que el sistema pueda recibir las peticiones adecuadamente.

¿Cómo probar las nuevas funcionalidades de autenticación?

Utilizamos herramientas como Postman para enviar solicitudes HTTP y probar que nuestras rutas funcionan correctamente. Podemos crear nuevas solicitudes POST, una para el registro y otra para el inicio de sesión, asegurándonos que los endpoints y métodos HTTP son correctos.

  • User Signup: /user/signup
  • User Login: /user/login

Nos aseguramos que el servidor de desarrollo esté en ejecución y realizamos las solicitudes para verificar su correcto funcionamiento. Si al realizar estas peticiones obtenemos respuestas satisfactorias, como un mensaje de éxito o un token de autenticación, significará que la configuración ha sido exitosa.

La implementación de estas características no solo asegura que nuestra aplicación esté preparada para un uso real, sino que también nos protege contra accesos no autorizados. Continuar explorando estos conceptos, probando y asegurando nuestras aplicaciones es fundamental para el desarrollo profesional en tecnología.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Creación de Modelo

sails generate model User email:string password:string

Creación de Controller

sails generate controller User signup login

En la creción de controlador se le puede pasar parámetros extras que son interpretados como métodos dentro del controlador.

Les recomiendo instalar y configurar nodemon para que se recargue el backend automáticamente por cada cambio, y así no tener que detener y levantar el servicio en cada cambio.
https://nodemon.io/

se podria instalar nodemon para el desarrollo, seria

npm i -D nodemon

y luego cargar en el packeage.json la config para lanzar la api

"scripts": {
 	...
	"dev": "NODE_ENV=development && nodemon --ignore 'tmp/*' app.js",
	...

entonces dentro de -> PlatziRideAPI se levanta la api con npm run dev