Autenticacao e Seguranca
7.1 Login
O acesso a plataforma requer tres informacoes:
- Tenant (Empresa): identificador unico da empresa
- E-mail: endereco de e-mail cadastrado
- Senha: senha definida no cadastro ou alterada posteriormente
O endpoint de login e:
POST /api/auth/loginjson
{
"email": "usuario@empresa.com.br",
"password": "suaSenha",
"tenant": "nome-da-empresa"
}7.2 Autenticacao em Dois Fatores (MFA)
Para maior seguranca, o Voki suporta autenticacao em dois fatores via TOTP (Time-based One-Time Password):
- Ative o MFA nas configuracoes da sua conta
- Escaneie o QR Code com um aplicativo autenticador (Google Authenticator, Authy, etc.)
- A cada login, alem de e-mail e senha, sera solicitado o codigo de 6 digitos do autenticador
O endpoint de verificacao MFA e:
POST /api/auth/mfa/verify7.3 Reset de Senha
Caso esqueca sua senha:
- Na tela de login, clique em "Esqueci minha senha"
- Informe seu e-mail e tenant
- Voce recebera um e-mail com um link para redefinir a senha
- O link e valido por tempo limitado (expira apos uso)
Endpoints envolvidos:
POST /api/auth/forgot-password
POST /api/auth/reset-password7.4 Tokens JWT
O Voki utiliza JSON Web Tokens (JWT) para autenticacao:
| Token | Validade | Uso |
|---|---|---|
| Access Token | 15 minutos | Acesso a API e paginas autenticadas |
| Refresh Token | 7 dias | Renovacao do access token sem novo login |
O access token deve ser enviado no header de cada requisicao:
Authorization: Bearer {access_token}Quando o access token expira, utilize o refresh token para obter um novo:
POST /api/auth/refresh7.5 Isolamento por Tenant
Cada empresa (tenant) possui seu proprio schema no banco de dados PostgreSQL, garantindo isolamento completo dos dados:
- Dados de uma empresa nunca sao acessiveis por outra
- Cada tenant tem suas proprias tabelas, indices e registros
- O tenant e determinado pelo JWT e validado a cada requisicao
- Nao e possivel acessar dados de outro tenant mesmo com token valido
7.6 Cabecalhos de Seguranca
Todas as respostas da plataforma incluem cabecalhos de seguranca:
- HSTS: Forca conexao HTTPS
- X-Frame-Options: DENY: Impede embedding em iframes (protecao contra clickjacking)
- X-Content-Type-Options: nosniff: Previne MIME-type sniffing
- Referrer-Policy: strict-origin-when-cross-origin: Controla informacoes de referencia
- Permissions-Policy: Restringe acesso a APIs do navegador
7.7 Rate Limiting
Para proteger contra ataques de forca bruta e abuso:
| Endpoint | Limite |
|---|---|
Autenticacao (/api/auth/*) | 5 requisicoes por minuto |
API publica (/api/signup/*, /api/v1/call/*) | 30 requisicoes por minuto |
Ao exceder o limite, a resposta sera 429 Too Many Requests.
