Skip to content

DevOpsProjectsLab/authenticator-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Authenticator Service

Microsserviço de autenticação do projeto DevOpsPlayground.
Responsável pelo registro, login e validação de usuários através de tokens JWT.

Construído em Python + Flask, com suporte a CORS para integração direta com o frontend-service.

🚀 O que faz

  • 🔐 Registro de novos usuários (nome, username, e-mail e senha)
  • 🔑 Login com username ou e-mail
  • 🪪 Geração de token JWT (autenticação temporária)
  • 🧠 Estrutura modular (API, Models, Services, Utils)
  • ⚙️ Suporte a variáveis de ambiente com .env
  • 🌍 Permite acesso via CORS ao Front-End (http://localhost:3000)

🛠️ Como rodar (local)

1️⃣ Preparar ambiente Python

Crie e ative um ambiente virtual:

python3 -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate

Instale as dependências:

pip install -r requirements.txt

2️⃣ Configurar variáveis de ambiente

Crie o arquivo .env na raiz do projeto:

SECRET_KEY=supersecretkey
JWT_EXPIRE_MINUTES=60
ALLOWED_ORIGINS=http://localhost:3000
DEBUG=true
PORT=5000

3️⃣ Rodar a aplicação

python3 src/main.py

A API estará disponível em: http://localhost:5000

4️⃣ Testar endpoints

➕ Registro (POST /auth/register):

curl -X POST http://localhost:5000/auth/register \
  -H "Content-Type: application/json" \
  -d '{"name":"João DevOps","username":"joaodev","email":"joao@dev.com","password":"1234"}'

🔑 Login (POST /auth/login):

curl -X POST http://localhost:5000/auth/login \
  -H "Content-Type: application/json" \
  -d '{"identifier":"joaodev","password":"1234"}'

🧾 Estrutura de pastas

authenticator-service/
├── src/
│   ├── api/              # Rotas da API (Blueprints Flask)
│   │   └── auth_routes.py
│   ├── models/           # Modelos e “banco” em memória
│   │   └── user_model.py
│   ├── services/         # Regras de negócio (registro, login)
│   │   └── user_service.py
│   ├── utils/            # Utilitários (JWT e helpers)
│   │   └── jwt_utils.py
│   └── main.py           # Ponto de entrada do Flask
│
├── .env                  # Configurações de ambiente
├── requirements.txt       # Dependências do projeto
├── setup.py               # Configuração de pacote
├── Dockerfile             # Build e execução do container
└── README.md

🐳 Dockerfile — visão geral

# Imagem base
# Etapa base
FROM python:3.11-slim

# Diretório de trabalho
WORKDIR /app

# Copiar dependências e instalar
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copiar restante do código
COPY . .

# Expor porta Flask
EXPOSE 5000

# Comando de inicialização — igual ao ambiente local
CMD ["python", "src/main.py"]

🧩 Stack utilizada

  • 🐍 Python 3.11
  • ⚙️ Flask 3.x
  • 🔐 PyJWT (tokens JWT)
  • 🧂 bcrypt (hash de senha)
  • 🌐 Flask-CORS (acesso entre domínios)
  • 🧱 Docker (empacotamento e execução)

About

Serviço de Autenticação

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published