Sign inSign up

mateushlsilva/2faservice

By mateushlsilva

•Updated 11 months ago

Serviço de autenticação 2FA desenvolvido em Python com FastAPI e MongoDB.

Image
Security
API management
0

284

mateushlsilva/2faservice repository overview

⁠🧩 2FA Microservice — Autenticação em Duas Etapas com FastAPI e MongoDB

Microserviço de autenticação 2FA (Two-Factor Authentication) desenvolvido com FastAPI e MongoDB. Permite configurar o 2FA com aplicativos como Google Authenticator, Microsoft Authenticator e similares, além de gerar e validar códigos de recuperação.


⁠🚀 Recursos principais

  • 🔐 Criação de autenticação 2FA (TOTP) — Gera secret keys e QR Codes compatíveis com autenticadores.
  • 🧾 Códigos de recuperação — Gera 5 códigos únicos de backup.
  • 🔁 Validação e regeneração — Permite validar e regenerar 2FA com recovery codes.
  • 💾 Integração MongoDB — Armazena usuários e secrets criptografados.
  • ⚙️ API REST pronta — Ideal para integrar em portais corporativos, apps e sistemas personalizados.

⁠🧠 Tecnologias

  • FastAPI — Framework principal da API
  • Motor (MongoDB) — Driver assíncrono
  • PyOTP — Códigos TOTP
  • QRCode — Geração de QR Codes
  • Docker — Containerização completa

⁠🐳 Como usar

⁠1️⃣ Executar com Docker
docker run -d --name 2fa \
  -e DATABASE_URL=mongodb://host.docker.internal:27017/2fa \
  -e ENTERPRISE=MinhaEmpresa \
  -p 8000:8000 mateushlsilva/2faservice:latest

🔸 Certifique-se de ter um MongoDB ativo em sua máquina (host.docker.internal para acesso local).


⁠📍 Endpoints principais

⁠Criar 2FA
POST /2fa/setup
Body:
{
  "identifier": "usuario123"
}
⁠Verificar código
GET /2fa/verify?identifier=usuario123&code=123456
⁠Validar código de recuperação
PATCH /2fa/recovery/generate
Body:
{
  "identifier": "usuario123",
  "code": "meu_codigo_de_recuperacao"
}

Acesse a documentação Swagger: 👉 http://localhost:8000/docs⁠


⁠🧰 Requisitos

  • Python ≥ 3.10
  • MongoDB ≥ 6
  • Docker instalado

⁠🧑‍💻 Autor

Mateus Silva — Desenvolvedor Full Stack 📍 São José dos Campos - SP Especialista em APIs, Microsserviços e Integrações.


⁠📝 Licença

Licenciado sob MIT License — livre para uso, modificação e distribuição.

Tag summary

Content type

Image

Digest

sha256:73f5dda95…

Size

100.5 MB

Last updated

11 months ago

docker pull mateushlsilva/2faservice:19034413398