https://github.com/adrianmdeiros/jwt-auth-api-example
Exemplo de autenticação JWT feita com TypeScript, Node.js, Express.js, Prisma ORM e PostgreSQL
https://github.com/adrianmdeiros/jwt-auth-api-example
docker express jwt nodejs postgresql prisma-orm tyepscript
Last synced: 3 months ago
JSON representation
Exemplo de autenticação JWT feita com TypeScript, Node.js, Express.js, Prisma ORM e PostgreSQL
- Host: GitHub
- URL: https://github.com/adrianmdeiros/jwt-auth-api-example
- Owner: adrianmdeiros
- License: mit
- Created: 2024-04-24T00:35:12.000Z (about 2 years ago)
- Default Branch: development
- Last Pushed: 2025-05-25T15:50:52.000Z (about 1 year ago)
- Last Synced: 2025-07-10T23:11:08.651Z (about 1 year ago)
- Topics: docker, express, jwt, nodejs, postgresql, prisma-orm, tyepscript
- Language: TypeScript
- Homepage:
- Size: 149 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🔐 jwt-auth-api-example
API de autenticação JWT feita com TypeScript e Prisma ORM
## Como testar
Clone o repositório:
```console
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:
```console
docker compose up -d
```
O container da aplicação deve estar disponível em:
```console
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_
```json
{
"email": "email@example.com",
"password": "senha_secreta"
}
```
_Response_
```json
{
"id": "d06ef51a-1dbb-464b-ae64-bd0263eef1b6",
"email": "email@example.com"
}
```
POST /api/auth
_Request_
```json
{
"email": "email@example.com",
"password": "senha_secreta"
}
```
_Response_
```json
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk2MmRkYTU2LWY2MDgtNDk5Zi05Y2M3LTIxZmM2MjRmOTY1OSIsImlhdCI6MTcxMzkyNTA0NywiZXhwIjoxNzE0MDExNDQ3fQ.xBiNAfMJrjk9tpicpIYr4Y7wdD93d2RlZRFT3W5m9dw"
}
```
_Token Payload_
```json
{
"user": {
"id": "d06ef51a-1dbb-464b-ae64-bd0263eef1b6",
"email": "email@example.com"
},
"iat": "1615462547",
"exp": "1615462547"
}
```
GET /api/users 🔒
_Request_
```javascript
// Exemplo com JavaScript
const response = await fetch('/api/users', {
headers: {
'Content-Type': 'application/json'
'Authorization': 'Bearer ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk2MmRkYTU2LWY2MDgtNDk5Zi05Y2M3LTIxZmM2MjRmOTY1OSIsImlhdCI6MTcxMzkyNTA0NywiZXhwIjoxNzE0MDExNDQ3fQ.xBiNAfMJrjk9tpicpIYr4Y7wdD93d2RlZRFT3W5m9dw'
}
})
```
_Response_
```json
{
"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