https://github.com/ninomiquelino/advanced-auth-system-angularjs
Sistema completo de autenticação moderna implementando WebAuthn/Passkeys, JWT e CSP em Angular e Node.js
https://github.com/ninomiquelino/advanced-auth-system-angularjs
angularjs cors csp helmetjs javascript jwt jwt-authentication jwt-token node-js nodejs sqlite typescript webauthn
Last synced: 4 months ago
JSON representation
Sistema completo de autenticação moderna implementando WebAuthn/Passkeys, JWT e CSP em Angular e Node.js
- Host: GitHub
- URL: https://github.com/ninomiquelino/advanced-auth-system-angularjs
- Owner: NinoMiquelino
- License: mit
- Created: 2025-11-12T02:02:10.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-11-12T02:27:43.000Z (7 months ago)
- Last Synced: 2025-11-12T04:10:47.435Z (7 months ago)
- Topics: angularjs, cors, csp, helmetjs, javascript, jwt, jwt-authentication, jwt-token, node-js, nodejs, sqlite, typescript, webauthn
- Language: TypeScript
- Homepage:
- Size: 68.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 🙋♂️ Autor
---
# 🔐 Advanced Authentication System





Sistema completo de autenticação moderna implementando **WebAuthn/Passkeys**, **JWT** e **CSP** em Angular e Node.js. Oferece autenticação tradicional por senha e passwordless através de biometria, Windows Hello, Face ID, ou segurança do dispositivo.
## ✨ Características Principais
### 🔒 Segurança Avançada
- **WebAuthn/Passkeys** - Autenticação sem senhas usando FIDO2
- **JWT Tokens** - Autenticação stateless com expiração
- **Content Security Policy** - Proteção contra XSS e ataques
- **CORS Configurado** - Controle de origens permitidas
- **Helmet.js** - Headers de segurança HTTP
### 🚀 Tecnologias Modernas
- **Angular 16** - Frontend robusto e reativo
- **Node.js + Express** - API REST performática
- **TypeScript** - Tipagem estática em todo o projeto
- **SQLite** - Banco de dados leve e eficiente
- **SimpleWebAuthn** - Biblioteca FIDO2 confiável
### 👥 Experiência do Usuário
- **Login Duplo** - Senha tradicional ou WebAuthn
- **Interface Responsiva** - Design moderno e intuitivo
- **Registro Simples** - Fluxo de cadastro otimizado
- **Gerenciamento de Perfil** - Área do usuário segura
## 🏗️ Arquitetura do Sistema
```
advanced-auth-system-angularjs/
├──🖥️ Frontend (Angular)
│├── Components modulares
│├── Interceptadores de auth
│├── Guards de rota
│└── Serviços reativos
│
├──⚙️ Backend (Node.js/Express)
│├── API RESTful
│├── WebAuthn endpoints
│├── Middleware JWT
│└── Database layer
│
└──🔐 Protocolos de Segurança
├── WebAuthn (FIDO2)
├── JWT tokens
├── CSP headers
└── CORS policies
```
## 🛠️ Instalação e Configuração
### Pré-requisitos
- Node.js 18+
- Angular CLI 16+
- Navegador compatível com WebAuthn
### 1. Clone o Repositório
```bash
git clone https://github.com/NinoMiquelino/advanced-auth-system-angularjs.git
cd advanced-auth-system-angularjs
```
2. Configuração do Backend
```bash
cd backend
npm install
# Ambiente de desenvolvimento
npm run dev
# Ou para produção
npm run build
npm start
```
3. Configuração do Frontend
```bash
cd frontend
npm install
# Servidor de desenvolvimento
ng serve
# Build de produção
ng build
```
4. Variáveis de Ambiente (Opcional)
Crie um arquivo .env no backend:
```env
PORT=3000
JWT_SECRET=seu_super_secret_jwt_aqui
RP_ID=localhost
RP_NAME="Advanced Auth System"
ORIGIN=http://localhost:4200
```
🎯 Como Usar
Registro de Usuário
1. Acesse /register
2. Cadastre com email e senha
3. Faça login tradicional
4. Vá para "Add WebAuthn" para registrar passkey
Login Tradicional
· Email e senha
· Geração de JWT token
· Sessions seguras
Login com WebAuthn
· Insira apenas o email
· Use biometria/segurança do dispositivo
· Autenticação instantânea e segura
📡 API Endpoints
Autenticação Básica
Método Endpoint Descrição
POST /api/register Registro tradicional
POST /api/login Login com senha
WebAuthn
Método Endpoint Descrição
GET /api/webauthn/reg-options Opções de registro
POST /api/webauthn/reg-verify Verificação de registro
POST /api/webauthn/auth-options Opções de autenticação
POST /api/webauthn/auth-verify Verificação de autenticação
Protegidos
Método Endpoint Descrição
GET /api/profile Perfil do usuário
🔧 Desenvolvimento
Estrutura do Frontend
```
src/app/
├── components/
│ ├── login/ # Componente de login
│ ├── register/ # Componente de registro
│ ├── profile/ # Perfil do usuário
│ └── webauthn-register/ # Registro WebAuthn
├── services/
│ └── auth.service.ts # Serviço de autenticação
├── guards/
│ └── auth.guard.ts # Proteção de rotas
└── interceptors/
└── auth.interceptor.ts # Interceptor JWT
```
Estrutura do Backend
```
src/
├── server.ts # Servidor principal
├── database.ts # Camada de dados
└── types/ # Definições TypeScript
```
Comandos Úteis
```bash
# Desenvolvimento simultâneo
concurrently "npm run dev" "ng serve"
# Build para produção
cd backend && npm run build
cd frontend && ng build --prod
# Testes (adicionar conforme necessidade)
npm test
```
🌐 Compatibilidade WebAuthn
Navegadores Suportados
· ✅ Chrome 67+
· ✅ Firefox 60+
· ✅ Safari 13+
· ✅ Edge 18+
Dispositivos/Plataformas
· ✅ Windows Hello
· ✅ Touch ID (macOS)
· ✅ Face ID (iOS)
· ✅ Android Biometric
· ✅ Security Keys (YubiKey, etc.)
🔐 Considerações de Segurança
Implementado
· Validação de origem WebAuthn
· Challenges únicos e temporários
· Contador de autenticadores
· Tokens JWT com expiração
· CSP headers
· CORS restritivo
· Helmet.js security headers
Recomendações para Produção
· Use HTTPS em produção
· Configure RP_ID corretamente para domínio
· Implemente rate limiting
· Adicione logging e monitoramento
· Use banco de dados persistente (PostgreSQL/MySQL)
📝 Roadmap
· MFA (Multi-Factor Authentication)
· Social login (Google, GitHub)
· Recovery codes
· Admin dashboard
· Logs de auditoria
· Testes unitários e e2e
· Docker deployment
· PWA capabilities
🙏 Agradecimentos
· SimpleWebAuthn - Excelente biblioteca FIDO2
· Comunidade Angular e Node.js
· Especificação FIDO2/WebAuthn
---
⭐ Se este projeto te ajudou, deixe uma estrela no repositório!
---
## 🤝 Contribuições
Contribuições são sempre bem-vindas!
Sinta-se à vontade para abrir uma [*issue*](https://github.com/NinoMiquelino/advanced-auth-system-angularjs/issues) com sugestões ou enviar um [*pull request*](https://github.com/NinoMiquelino/advanced-auth-system-angularjs/pulls) com melhorias.
---
## 💬 Contato
📧 [Entre em contato pelo LinkedIn](https://www.linkedin.com/in/onivaldomiquelino/)
💻 Desenvolvido por **Onivaldo Miquelino**
---