O desafio consistia em cria uma api de autenticação de usuários utilizando JavaScript.
As Tecnologias utilizadas foram:
- NodeJS v18.16.0
- Express v4.18.2
- Peço encarecidamente paciência ao realizar a primeira requisição, pois a API está hospedada no Render, o servidor provavelmente estará ocioso o que leva ele a demorar para responder.
- Persistencia de dados: MongoDB, mongoose.✅
- Framework: Express.✅
- Padronização de estilo: EsLint.✅
- Task runner para build: Grunt + webPack✅
- Gerenciamento de dependências: Npm.✅
- Jwt com jsonwebtoken.✅
- Testes com mocha.✅
- Criptografia hash com crypto-js.✅
Requisições para a API devem seguir os padrões:
Método | Descrição |
---|---|
GET |
Retorna informações de um cadastro. |
POST |
Utilizado para criar um novo cadastro. |
Método | URL |
---|---|
POST |
https://auth-user-desafio2.onrender.com/sign-up |
-
Requisição (application/json)
-
HEADER
{ "Content-Type": "application/json" }
-
BODY
{ "nome": "Antonio de Souza", "email": "[email protected]", "senha": "antonio#123", "telefones": [ { "numero": "123456789", "ddd": "11" } ] }
-
-
Response
-
Status 201 CREATED
-
BODY
{ "id": "GUID/ID", "name": "Antonio de Souza", "data_criacao": "2023-11-22T14:38:34.911Z", "data_atualizacao": "2023-11-22T14:38:34.911Z", "ultimo_login": "2023-11-22T14:38:34.700Z", "token": "GUID/JWT" }
-
-
Erros Possíveis
Status Descrição 401 - Unauthorized
Usuário e/ou senha incorretos 422 - Unprocessable Entity
A requisição é compreendida porém o corpo contém erros
Método | URL |
---|---|
POST |
https://auth-user-desafio2.onrender.com/sign-in |
-
Requisição (application/json)
-
HEADER
{ "Content-Type": "application/json" }
-
BODY
{ "email": "[email protected]", "senha": "antonio#123" }
-
-
Response
-
Status 200 OK
-
BODY
{ "id": "GUID/ID", "name": "Antonio de Souza", "data_criacao": "2023-11-22T14:38:34.911Z", "data_atualizacao": "2023-11-22T14:38:34.911Z", "ultimo_login": "2023-11-22T14:45:34.700Z", "token": "GUID/JWT" }
-
-
Erros Possíveis
Status Descrição 409 - Conflict
Tentativa de cadastro com um email já existente 422 - Unprocessable Entity
A requisição é compreendida porém o corpo contém erros
Método | URL |
---|---|
GET |
https://auth-user-desafio2.onrender.com/user |
-
Requisição
-
HEADER
{ "Authentication": "Bearer {token}" }
-
-
Response
-
Status 200 OK
-
BODY
{ "id": "GUID/ID", "name": "Antonio de Souza", "data_criacao": "2023-11-22T14:38:34.911Z", "data_atualizacao": "2023-11-22T14:38:34.911Z", "ultimo_login": "2023-11-22T14:45:34.700Z", }
-
-
Erros Possíveis
Status Descrição 401 - Unauthorized
Token inválido 401 - Unauthorized (Sessão inválida)
O token expirou
Guilherme de Souza |