Punto de partida
Cuando queremos recuperar una contraseña hago una peticion que me pide el email
/api/v1/auth/recovery-password
- post crear un nuevo recovery password
- Llegar el correo electronico
- Link que te permite hacer una peticion para actualizar tus datos
/api/v1/auth/recovery-password/:id
- patch actualizar la contraseña validando el enlace del recovery password
-
cuando mandamos la nueva contraseña pasan 2 cosas
- Se modifica la contraseña en el usuario
- Se modifica el recoveryToken como ya usado, para que no se pueda volver a utilizar
-
Es importante que valides el correcto funcionamiento de tu aplicación. Debes de cumplir con los requerimientos indicados, las entregas y ten en cuenta las consideraciones listadas. Así mismo aprovecha los recursos recomendados.En este proyecto implementaran todo lo visto hasta el momento, crearan una aplicación “comodin” que la van a poder implementar en distintas aplicaciones, un chat!
- Deberas crear una API que gestione login de usuarios manejando JsonWebToken, creando un middleware de autenticacion
- Al hacer el login deberas de retornar el token para que el usuario pueda hacer las peticiones a rutas protegidas
- El middleware debera verificar si el token pertenece a un usuario existente y retornar un error en caso de que no
https://github.com/SheykoWk/Node-skeleton
- En base al siguiente diagrama y relaciones, deberan crear los modelos y relaciones (en el init models), para poder vincular con sequelize
(El modelo de usuarios puede ser el mismo que ya tienen en su skeleton)
- Tomen los siguientes puntos a considerar
- Un usuario tiene muchas conversaciones
- Un usuario es participante de muchas conversaciones
- Un usuario envia muchos mensajes
- Una conversacion tiene muchos participantes
- Una conversacion tiene muchos mensajes
- Deberan existir las siguientes rutas con sus respectivos verbos
-
/api/v1/conversations
- Esta ruta debe estar protegida
- OPCIONAL: Debera mostrar las conversaciones del usuario loggeado
- Podras crear conversaciones nuevas
-
/api/v1/conversations/:conversation_id
- Esta ruta debe estar protegida
- Debera mostrar una conversacion en especifico
- La podras eliminar y modificar desde aqui
-
/api/v1/conversations/:conversation_id/messages
- Esta ruta debe estar protegida
- Mostrara todos los mensajes que tiene la conversacion
- Permitira crear nuevos mensajes
-
/api/v1/conversations/:conversation_id/messages/:message_id
- Esta ruta debe estar protegida
- Mostrara un mensaje en especifico
- Permitira eliminarlo, pero no modificarlo
Ejemplo relacion muchas tablas anidadas Users.findAll({ include:[{ model: Participants, include: [{ model: Conversations }] }] })
-
- Sintaxis
- El codigo debe tener la sintaxis correcta
20%
- Elementos
- Debe contener los archivos separados con arquitectura MVC
10%
- Funcionalidad
- Al hacer peticiones no deben generar errores, y deben de funcionar todas las peticiones que se piden en las instrucciones
60%
- Codigo en ingles
10%
const data = await Conversations.create()
data.id