Esta é uma aplicaçao em Express.js para autenticação de usuários e recuperação de informações de usuário usando o MongoDB como banco de dados. O aplicativo utiliza tecnologias como Mongoose para interações com o MongoDB, Bcrypt para hash de senhas, JSON Web Tokens (JWT) para autenticação do usuário, e o pacote dotenv para gerenciar variáveis de ambiente.
Antes de executar o aplicativo, certifique-se de configurar as variáveis de ambiente em um arquivo .env na raiz do projeto. A variável de ambiente necessária é SECRET, que é usada como chave secreta para o JWT.
Para iniciar a aplicação, execute na linha de comandos:
npm start - O aplicativo estará acessível em http://localhost:8080.
Este endpoint recupera informações do usuário pelo ID. É necessário um token JWT válido no cabeçalho Authorization para autenticação.
Requisição: Método: GET
Rota: /:id
Cabeçalhos: Authorization: Bearer <JWT_TOKEN>
Resposta:
Sucesso (200 OK): { "user": { // Informações do usuário excluindo a senha } }
Usuário Não Encontrado (404 Not Found):
- "mensagem": "Usuário inválido"
Erro do Servidor (500 Internal Server Error):
- "mensagem": "Erro interno"
Este endpoint permite o registro de usuários.
Requisição: Método: POST
Rota: /singup
Corpo:
- "nome": "nome_do_usuario",
- "email": "[email protected]",
- "senha": "senha_do_usuario",
- "telefones": ["123456789", "987654321"]
Resposta: Sucesso (201 Created):
- "id": "id_do_usuario",
- "data_criacao": "data_de_criacao",
- "data_atualizacao": "data_de_atualizacao",
- "ultimo_login": "ultima_data_de_login"
Email Já Registrado (400 Bad Request):
- "statusCode": 400,
- "mensagem": "Email já cadastrado!"
Erro do Servidor (500 Internal Server Error):
- "mensagem": "Erro no servidor"
Este endpoint lida com a autenticação do usuário e gera um token JWT após o login bem-sucedido.
Requisição: Método: POST
Caminho: /singin
Corpo:
- "email": "[email protected]",
- "senha": "senha_do_usuario"
Resposta:Sucesso (200 OK):
- "id": "id_do_usuario",
- "data_criacao": "data_de_criacao",
- "data_atualizacao": "data_de_atualizacao",
- "ultimo_login": "ultima_data_de_login",
- "token": "token_jwt"
Usuário ou Senha Inválidos (401 Unauthorized):
- "statusCode": 401,
- "mensagem": "Usuario e / ou senha inválidos"
Erro do Servidor (500 Internal Server Error):
- "mensagem": "Erro no servidor"
A aplicação se conecta a um banco de dados MongoDB usando a biblioteca Mongoose. A string de conexão é fornecida no método mongoose.connect. Certifique-se de substituir a string de conexão pela seu própria string de conexão do MongoDB Atlas.