Backend em typescript para autenticação com jwt, feito para ser reaproveitado em outros códigos,
Sendo a autenticação (registro e login de usuários) uma feature quase que onipresente em todos os websites, a proposta deste repositório é poupar tempo. A ideia é fornecer o escopo para a implementação da feature, que deve ser alterada de acordo com as preferências do programador. A arquitetura do código é disposta em camadas (Rotas -> Controladores -> Serviços -> Repositórios, com alguns middlewares).
- REST APIs
- JWTs tokens
- Node.js
- TypeScript
- Prisma ORM
- Testes de integração com Jest e Supertest
POST /sign-up
- Rota para registrar novo usuário
- headers: {}
- body:{
"name": "lorem",
"email": "lorem@gmail.com",
"password": "loremipsum",
"repeatPassword": "loremipsum",
}
POST /sign-in
- Rota para logar usuário
- headers: {}
- body: {
"email": "lorem@gmail.com",
"password": "loremipsum"
}
- retorna um token jwt, que deve ser utilizado para acessar rotas autenticadas da aplicação.
GET /authenticated (authenticated)
- Rota de exemplo de aplicação do token jwt
- headers: { "Authorization": "Bearer $token" }
- body: {}
Certifique-se que você possui a última versão estável do Node.js e npm rodando localmente.
Clone este repositório em sua máquina:
git clone https://github.com/phbodias/backend-autentication-with-jwt.git
Dentro da pasta do projeto, rode o seguinte comando para instalar as dependências necessárias:
npm install
Crie e configure um arquivo ".env", com base no arquivo ".env-example"
Feito isso, rode a aplicação com:
npm start
Para rodar os testes de integração, crie e configure um arquivo ".env.test", com base no arquivo ".env-example"
Feito isso, utilize o comando:
npm run test:integration
Caso fique em dúvidas em relação à algum conceito sobre jwt, você pode acessar a documentação em jwt-node.