herculanodev / ComuniLibrary

Bem-vindo à ComuniBiblio, a sua biblioteca online colaborativa
0 stars 0 forks source link

Create User #31

Closed herculanodev closed 2 months ago

herculanodev commented 3 months ago

Title: Create User Description: Implementar a funcionalidade para adicionar um novo usuário à ComuniLibrary com autenticação JWT.

Endpoints: POST /users

Tasks:

Criar a rota para adicionar usuários.

Criar uma nova rota em routes/users.js que responda ao endpoint POST /users. Implementar a lógica de validação dos dados do usuário.

Validar os campos necessários (e.g., username, password, email). Retornar erros de validação adequados se os dados forem inválidos. Salvar o novo usuário no banco de dados.

Crie um novo modelo de usuário (models/User.js). Utilize o Mongoose para salvar o usuário no banco de dados MongoDB. Implementar a autenticação JWT.

Adicionar a geração de token JWT no controlador de criação de usuário (controllers/userController.js). Utilize a biblioteca jsonwebtoken para criar um token JWT com uma chave secreta. Armazene a chave secreta no arquivo de configuração .env. Proteger rotas com autenticação JWT.

Criar middleware de autenticação (middleware/auth.js) que verifica o token JWT em solicitações protegidas. Adicionar middleware de autenticação às rotas que exigem autenticação. Retornar uma resposta adequada (sucesso/falha).

Retornar uma resposta JSON com o token JWT em caso de sucesso na criação do usuário. Retornar mensagens de erro apropriadas em caso de falha (e.g., usuário já existe, dados inválidos). Acceptance Criteria:

A rota POST /users deve validar os dados de entrada e retornar erros de validação apropriados. Um novo usuário deve ser salvo no banco de dados se os dados forem válidos. Um token JWT deve ser gerado e retornado na resposta após a criação do usuário. O middleware de autenticação JWT deve proteger as rotas que exigem autenticação. A documentação da API deve ser atualizada para incluir o novo endpoint e a lógica de autenticação.