An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# 🔐 jwt-auth-api-example


License




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