Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auth Customer API

Python FastAPI SQLite JWT License

API REST de autenticação de usuários construída com FastAPI, JWT e SQLAlchemy.


Funcionalidades

  • Cadastro de usuário com validação de email duplicado
  • Login com geração de token JWT
  • Consulta de dados do usuário autenticado
  • Atualização de email e senha
  • Exclusão de conta
  • Hash de senha com bcrypt
  • Validação de senha (máx. 72 caracteres)
  • Variáveis de ambiente com pydantic-settings

Tecnologias

Tecnologia Versão
Python 3.13
FastAPI 0.115+
SQLAlchemy 2.x
SQLite
Pydantic v2 2.x
python-jose JWT
passlib + bcrypt Hash
pydantic-settings Config

Estrutura do projeto

auth-customer-api/
├── app/
│   ├── core/
│   │   ├── config.py       # Variáveis de ambiente
│   │   ├── database.py     # Conexão com o banco
│   │   └── security.py     # JWT e hash de senha
│   ├── models/
│   │   └── user.py         # Modelo SQLAlchemy
│   ├── routers/
│   │   └── auth.py         # Endpoints HTTP
│   ├── schemas/
│   │   └── user.py         # Schemas Pydantic
│   ├── services/
│   │   └── auth_service.py # Lógica de negócio
│   └── main.py
├── tests/
├── .env.example
├── .gitignore
├── requirements.txt
└── README.md

Como rodar

1. Clone o repositório

git clone https://github.com/rauladrixdev/auth-customer-api
cd auth-customer-api

2. Crie e ative o ambiente virtual

python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux/Mac
source .venv/bin/activate

3. Instale as dependências

pip install -r requirements.txt

4. Configure as variáveis de ambiente

Copie o arquivo de exemplo e preencha:

cp .env.example .env

Edite o .env:

SECRET_KEY=sua_chave_secreta_aqui
DATABASE_URL=sqlite:///./db.sqlite3

Para gerar uma chave segura:

python -c "import secrets; print(secrets.token_hex(32))"

5. Inicie o servidor

uvicorn app.main:app --reload

6. Acesse a documentação interativa

http://127.0.0.1:8000/docs

Endpoints

Método Rota Auth Descrição
POST /auth/register Cadastro de usuário
POST /auth/login Login e geração de JWT
GET /auth/me ✅ token Retorna dados do usuário
PUT /auth/me ✅ token Atualiza email ou senha
DELETE /auth/me ✅ token Deleta a conta

Exemplos de uso

Cadastro

curl -X POST http://localhost:8000/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "user@email.com", "password": "senha123"}'

Resposta:

{"msg": "usuário criado"}

Login

curl -X POST http://localhost:8000/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@email.com", "password": "senha123"}'

Resposta:

{"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}

Consultar dados

curl http://localhost:8000/auth/me?token=SEU_TOKEN_AQUI

Resposta:

{"id": 1, "email": "user@email.com"}

Licença

MIT © Raúl Adriano

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages