Projeto backend para rotina de login com Fastify
O projeto tem o objetivo de fornecer um template para implementação de uma rotina de login utilizando Fastfy, Prisma e JWT
-
Typescript
npm i -D typescript-
Iniciar ts.config
npx tsc --init
-
-
Ts Node Dev
npm i -D ts-node-dev -
Fastify
npm i fastify -
Prisma
npm install prisma --save-dev -
Prisma Client
npm install @prisma/client -
JWT
npm i --save jsonwebtoken
Iniciar prisma
-
Podemos iniciar o prisma sem determinar um banco de dados, de forma que virá por padão o definido na CLI
npx prisma init
-
Podemos iniciar o prisma com um banco de dados de nossa preferencia
-
Neste caso, estou utilizando Sqlite
npx prisma init --datasource-provider sqlite
-
Usuários
-
POST /users
- Criação de usuário
- Obrigatório o envio dos dados
loginepasswordpelo body da aplicação- O campo
loginé único. Logo, não será possível realizar a criação de um usuário que já possui um login existente
- O campo
- Obrigatório o envio dos dados
- Criação de usuário
-
POST /users/login/
- Realiza o login, retornando o token
JWTpara uso nas autenticações- Obrigatório o envio dos dados
loginepasswordpelo body da aplicação
- Obrigatório o envio dos dados
- Realiza o login, retornando o token
-
PATCH /users/:idUser/
- Altera os dados do usuário
- Obrigatório o envio de ao menos um dos dados:
loginepasswordpelo body da aplicação- Caso não seja passado nenhum dos dados, retorna um erro
- Obrigatória a validação do token JWT nos headers da aplicação
- Obrigatório o envio de ao menos um dos dados:
- Altera os dados do usuário
-
DELETE /users/:idUser/
- Exclui o usuário informado nos parametros da rota
- Deve ser informado no parametro da rota o
iddo usuário que deve ser excluído - Obrigatória a validação do token JWT nos headers da aplicação
- Deve ser informado no parametro da rota o
- Exclui o usuário informado nos parametros da rota
Usuários
-
Deve ser possível criar um usuário
-
Deve ser possível realizar o Login do usuário e gerar o token JWT
-
Deve ser possível alterar os dados do usuário
-
Deve ser possível excluir um usuário
-
Implementação de Hash de senha