API para gerenciamento de autenticação, desenvolvida em Node.js com Express e MongoDB.
Para autenticar em 2 fatores com app de autenticação externo, fique a vontade para usar o que for da sua preferência. Em meus testes utilizei o app do Google.
Esta API está sendo consumida em um aplicativo construído por mim em Flutter que pode ser encontrado no seguinte repositório:
- (google-2FA-mobile)[https://github.com/natanzeraa/google-2FA-mobile.git]
- Cadastro e autenticação de usuários
- Validação de dados com Zod
- Proteção de rotas com JWT
- Verificação de identidade com Google Authenticator
- Validação de autenticidade com Refresh Token em futuros logins
src/
config/ # Configuração do banco de dados
controllers/ # Lógica dos endpoints
middlewares/ # Middlewares de validação e autenticação
models/ # Modelos Mongoose (MongoDB)
routes/ # Rotas da API
services/ # Regras de negócio
utils/ # Utilitários, mensagens e validações
mocks/ # Mock de dados para testar validação de token em requisições protegidas
- Clone o repositório:
git clone https://github.com/natanzeraa/google-2FA-mobile.git
- Instale as dependências:
npm ci
- Configure o arquivo
.envconforme o exemplo em.env.example.
npm run devPOST /auth/signup— Cadastro de usuárioPOST /auth/login— Login de usuárioPOST /auth/2fa/enable— Ativa 2FAPOST /auth/2fa/check— Confere está funcionando 2FAPOST /auth/2fa/disable— Desativa 2FAGET /appointments— Listar clientes (autenticado)
- Node.js
- Express
- MongoDB & Mongoose
- JWT
- Zod
- Bcrypt
- OTP Auth
- É necessário ter o MongoDB rodando e configurar a variável
DATABASE_URIno.env. - As rotas de /appointments são protegidas por autenticação JWT.