https://github.com/concretesolutions/desafio-node-espanol
Desafio de Node.js en castellano.
https://github.com/concretesolutions/desafio-node-espanol
Last synced: 3 months ago
JSON representation
Desafio de Node.js en castellano.
- Host: GitHub
- URL: https://github.com/concretesolutions/desafio-node-espanol
- Owner: concretesolutions
- Created: 2019-07-25T18:59:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-25T19:17:09.000Z (almost 7 years ago)
- Last Synced: 2025-01-24T08:31:15.157Z (over 1 year ago)
- Size: 4.88 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Desafio Node.js
## Requisitos:
- Usar status codes REST.
- Validar los datos de entrada.
- Implementar JWT stateless.
- Usar persistencia de datos.
- Usar un linter (Eslint, Jshiint).
- Usar frameworks como Express, Hapi o similares.
- Deployar API en la nuve (heroku, next, aws, google cloud, etc).
- El desafio deve entregarse en Github.
## Deseado
- Tests unitarios y de API.
- Criptografia no reversível (hash) para password y token.
## Registro de usuario (Sign up)
Este endpoint deve recibir un objeto siguiendo el siguiente modelo:
```
{
"name": "string",
"email": "string",
"password": "string",
"telephones": [
{
"number": "number",
"area_code": "number"
}
]
}
```
En caso de exito retorna 200:
```
{
"id": "string",
"created_at": "date"
"modified_at": "date"
}
```
En caso de error retornar status code y mensaje de error correspondiente.
# Login de usuarios (Sign in)
Este endpoint deve recibir un objeto con `email` y `password`
En caso que el email exista y el password sea igual al persistido, retorna un token JWT el cual deve incluir en el payload : `email`, `id`.
En caso de login inválido deve retornar 401 y mensaje de error apropiado.
# Buscar usuario
Este endpoint deve recibir un header:
```
Header
Authorization: Bearer
```
Donde `token` es el retornado en el endpoint de login.
En caso de token inválido deve retornar 401 y mensaje de error apropiado.
En caso de exito retorna `email`, `id`, `telephones`, `created_at`, `modified_at`