Skip to content

adrianmdeiros/jwt-auth-api-example

Repository files navigation

🔐 jwt-auth-api-example

License

API de autenticação JWT feita com TypeScript e Prisma ORM

Como testar

Clone o repositório:

git clone https://github.com/adrianmedeirosdev/jwt-auth-api-example.git

O docker compose irá subir os containers da aplicação Node e banco de dados postgreSQL:

docker compose up -d

O container da aplicação deve estar disponível em:

http://localhost:3000

Utilize um REST API Client de sua preferência para testar. Se você usa VSCode, recomendo a extensão Thunder Client:


Exemplo:


Endpoints

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"
}

🚀 Tecnologias

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

⚖ Licença

Este projeto está sobre The MIT License

About

Exemplo de autenticação JWT feita com TypeScript, Node.js, Express.js, Prisma ORM e PostgreSQL

Topics

Resources

License

Stars

Watchers

Forks

Contributors