Autenticação
O LipMKT implementa um sistema robusto de autenticação multi-tenant utilizando Firebase Authentication combinado com Custom Claims para controle de acesso granular.
🔐 Arquitetura de Autenticação
Fluxo de Autenticação
1. Usuário faz login (email/senha)
↓
2. Firebase Authentication valida credenciais
↓
3. Backend adiciona Custom Claims (tenantId, companyId, role)
↓
4. Token JWT é gerado com claims
↓
5. Frontend armazena token e dados do usuário
↓
6. Requisições incluem token no header Authorization
↓
7. Backend valida token e verifica permissões
🏗️ Componentes do Sistema
1. Firebase Authentication
Responsabilidade: Gerenciar identidades de usuários.
Recursos utilizados:
- Email/Password authentication
- Token refresh automático
- Session management
- Password reset
Configuração:
2. Custom Claims (JWT)
Propósito: Adicionar metadados personalizados ao token do usuário.
Claims implementados:
tenantId- ID do tenant (isolamento de dados)companyId- ID da empresarole- Papel do usuário (admin, agent, manager)permissions- Array de permissões específicas
Exemplo de token decodificado:
3. Backend Authentication Service
Localização: functions/lib/auth/
Principais funções:
Login
Middleware de Autenticação
Verificação de Permissões
🎯 Implementação Frontend
Redux Auth Store
Estado gerenciado:
Login Flow
Proteção de Rotas
Verificação de Permissões
🔄 Refresh de Token
Automático
Manual
👥 Roles e Permissões
Hierarquia de Roles
Matriz de Permissões
| Recurso | Super Admin | Admin | Manager | Agent | Viewer |
|---|---|---|---|---|---|
| Conversas | |||||
| Visualizar | ✅ | ✅ | ✅ | ✅ | ✅ |
| Responder | ✅ | ✅ | ✅ | ✅ | ❌ |
| Atribuir | ✅ | ✅ | ✅ | ❌ | ❌ |
| Fechar | ✅ | ✅ | ✅ | ✅ | ❌ |
| Fluxos | |||||
| Visualizar | ✅ | ✅ | ✅ | ✅ | ✅ |
| Criar/Editar | ✅ | ✅ | ✅ | ❌ | ❌ |
| Ativar/Desativar | ✅ | ✅ | ❌ | ❌ | ❌ |
| Deletar | ✅ | ✅ | ❌ | ❌ | ❌ |
| Agentes | |||||
| Visualizar | ✅ | ✅ | ✅ | ❌ | ❌ |
| Criar/Editar | ✅ | ✅ | ❌ | ❌ | ❌ |
| Deletar | ✅ | ✅ | ❌ | ❌ | ❌ |
| Analytics | |||||
| Visualizar | ✅ | ✅ | ✅ | ❌ | ✅ |
| Exportar | ✅ | ✅ | ✅ | ❌ | ❌ |
| Configurações | |||||
| Visualizar | ✅ | ✅ | ❌ | ❌ | ❌ |
| Editar | ✅ | ✅ | ❌ | ❌ | ❌ |
Definição de Permissões
🔒 Segurança
Boas Práticas Implementadas
- Token Expiration: Tokens expiram em 1 hora
- HTTPS Only: Todas as comunicações via HTTPS
- Secure Cookies: Cookies com flags
httpOnlyesecure - Rate Limiting: Limite de tentativas de login
- Password Policy: Mínimo 8 caracteres, letras e números
- Multi-tenant Isolation: Dados isolados por
tenantId
Firestore Security Rules
🧪 Testes
Teste de Login
🔗 Próximos Passos
- API Reference - Endpoints da API
- CRM & Database - Estrutura de dados
- Firebase Integration - Configuração Firebase
Última atualização
26 de novembro de 2025