API de autenticação em Node.js utilizando SQLite para armazenamento e JWT para proteção de rotas. Simples, leve e funcional, ideal para aprendizado e pequenos projetos.
- Node.js
- Express
- JWT (jsonwebtoken)
- SQLite (better-sqlite3)
- dotenv
- cors
- Cadastro de usuário
- Login com geração de token JWT
- Rota protegida (
/auth/me) acessível apenas com token válido
NodeAuthDB/
│
├─ src/
│ ├─ app.js # Configuração do servidor e banco SQLite
│ ├─ routes/
│ │ └─ authRoutes.js # Rotas de autenticação
│ ├─ controllers/
│ │ └─ authController.js # Lógica de cadastro, login e rota protegida
│ └─ middleware/
│ └─ authMiddleware.js # Validação do token JWT
│
├─ .env # Variáveis de ambiente
├─ package.json # Dependências e scripts
└─ authx.db # Banco SQLite (gerado automaticamente)
- Clone o repositório:
git clone https://github.com/caioreis29974/NodeAuthDB.git
cd NodeAuthDB- Instale as dependências:
npm install- Configure as variáveis de ambiente criando um arquivo
.env:
PORT=3000
JWT_SECRET=meusegredo
DB_FILE=./authx.db
npm startVocê verá a mensagem:
Servidor rodando na porta 3000
POST /auth/register
Body (JSON):
{
"email": "usuario@exemplo.com",
"password": "123456"
}Resposta:
{
"message": "Usuário registrado com sucesso"
}POST /auth/login
Body (JSON):
{
"email": "usuario@exemplo.com",
"password": "123456"
}Resposta:
{
"token": "SEU_TOKEN_JWT_AQUI"
}GET /auth/me
Headers:
Authorization: Bearer <SEU_TOKEN_JWT_AQUI>
Resposta:
{
"id": 1,
"email": "usuario@exemplo.com"
}- O banco SQLite (
authx.db) é criado automaticamente na primeira execução. - O JWT expira em 1 hora, mas você pode alterar isso no
authController.js.
MIT License