API de autenticação JWT feita com TypeScript e Prisma ORM
Clone o repositório:
git clone https://github.com/adrianmedeirosdev/jwt-auth-api-example.gitO docker compose irá subir os containers da aplicação Node e banco de dados postgreSQL:
docker compose up -dO container da aplicação deve estar disponível em:
http://localhost:3000Utilize um REST API Client de sua preferência para testar. Se você usa VSCode, recomendo a extensão Thunder Client:
Exemplo:
POST /api/users
Request
{
"email": "email@example.com",
"password": "senha_secreta"
}Response
{
"id": "d06ef51a-1dbb-464b-ae64-bd0263eef1b6",
"email": "email@example.com"
}POST /api/auth
Request
{
"email": "email@example.com",
"password": "senha_secreta"
}Response
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk2MmRkYTU2LWY2MDgtNDk5Zi05Y2M3LTIxZmM2MjRmOTY1OSIsImlhdCI6MTcxMzkyNTA0NywiZXhwIjoxNzE0MDExNDQ3fQ.xBiNAfMJrjk9tpicpIYr4Y7wdD93d2RlZRFT3W5m9dw"
}Token Payload
{
"user": {
"id": "d06ef51a-1dbb-464b-ae64-bd0263eef1b6",
"email": "email@example.com"
},
"iat": "1615462547",
"exp": "1615462547"
}GET /api/users 🔒
Request
// Exemplo com JavaScript
const response = await fetch('/api/users', {
headers: {
'Content-Type': 'application/json'
'Authorization': 'Bearer ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk2MmRkYTU2LWY2MDgtNDk5Zi05Y2M3LTIxZmM2MjRmOTY1OSIsImlhdCI6MTcxMzkyNTA0NywiZXhwIjoxNzE0MDExNDQ3fQ.xBiNAfMJrjk9tpicpIYr4Y7wdD93d2RlZRFT3W5m9dw'
}
})Response
{
"message": "You are allowed to see this only because you have a token"
}Esse projeto foi desenvolvido com essas tecnologias:
- TypeScript, Node.js, Express.js e Prisma ORM
- Git and Github
- bcryptjs, jsonwebtoken, vitest, cors, http-status-codes, tsx e tsup
Este projeto está sobre The MIT License

