Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Sistema de Autenticação API

Uma API robusta para gerenciamento de usuários com autenticação baseada em JWT, desenvolvida utilizando Node.js, Express e Prisma ORM.

📋 Tabela de Conteúdo

✨ Funcionalidades

  • Registro e autenticação de usuários com JWT
  • Gerenciamento de perfis (leitura e atualização)
  • Geração de tokens JWT com expiração configurável
  • Validação robusta de dados de entrada
  • Criptografia segura de senhas
  • Middleware de autenticação para rotas protegidas

🛠 Tecnologias Utilizadas

Tecnologias Principais

  • Node.js: Plataforma de execução JavaScript
  • Express: Framework para construção de APIs
  • Prisma ORM: Gerenciamento de banco de dados
  • PostgreSQL: Banco de dados relacional
  • JWT: Autenticação baseada em tokens
  • Zod: Validação de esquemas

💻 Instalação

  1. Clone o repositório:

    git clone https://github.com/kant-sdev/auth-simple-api.git
    cd auth-simple-api
  2. Instale as dependências:

    npm install
  3. Configure o banco de dados:

    npx prisma generate
    npx prisma migrate dev
  4. Inicie o servidor:

    npm run dev

⚙ Configuração

Banco de Dados

Configure a conexão com o PostgreSQL no arquivo .env:

DATABASE_URL="postgresql://usuario:senha@localhost:5432/nome_banco?schema=public"

Variáveis de Segurança

Adicione as variáveis de segurança ao arquivo .env:

JWT_KEY="sua_chave_secreta_aqui"
PORT=4000

📚 Documentação da API

Autenticação

Registro de Usuário

POST /v1/api/auth/register

Body:

{
  "name": "Nome Completo",
  "email": "email@valido.com",
  "contact": "11999999999",
  "password": "senhaForte123"
}

Login

POST /v1/api/auth/login

Body:

{
  "email": "email@valido.com",
  "password": "senhaForte123"
}

Perfil do Usuário

Obter Perfil

GET /v1/api/auth/profile

Headers:

Authorization: Bearer <token_jwt>

Atualizar Perfil

PUT /v1/api/auth/profile

Headers:

Authorization: Bearer <token_jwt>
Content-Type: application/json

Body:

{
  "name": "Novo Nome",
  "contact": "11988887777"
}

🔧 Variáveis de Ambiente

Variável Obrigatório Descrição Exemplo
DATABASE_URL Sim URL de conexão com o PostgreSQL postgresql://user:pass@localhost:5432/db
JWT_KEY Sim Chave secreta para tokens JWT minhaChaveSuperSecreta123
PORT Não Porta do servidor (padrão: 4000) 4000

🧪 Testes

  1. Importe a coleção do Postman.
  2. Configure a variável de ambiente no Postman:
    • base_url: http://localhost:4000/v1/api
  3. Execute o fluxo de testes:
    • Registro → Login → Acesso ao perfil → Atualização

🗺 Roadmap

  • Implementação de recuperação de senha
  • Confirmação de e-mail para novos usuários
  • Integração com documentação Swagger
  • Suporte à dockerização
  • Desenvolvimento de testes automatizados

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages