Pular para o conteúdo
🔴 TROUBLESHOOTING

Troubleshooting: login não funciona

Diagnóstico step-by-step para identificar e resolver problemas de autenticação.

Checklist de diagnóstico

Execute estes passos em ordem antes de investigar erros específicos:

  1. O projeto está com status Ativo? (Platform → Projetos — verificar se não está suspenso)
  2. O provider OAuth está habilitado? (Auth → Providers — verificar se o provider usado está ativo)
  3. A Redirect URI está correta no provider externo? (deve ser exatamente https://auth.superdb.com.br/oidc/callback)
  4. O container auth está UP? (docker compose ps auth)
  5. O JWT_SECRET está configurado e não foi alterado recentemente?
  6. O relógio do servidor está sincronizado? (diferença >5min invalida tokens)

Erros comuns e soluções

invalid_client

Causa: Client ID ou Client Secret do provider OAuth estão incorretos ou expirados.

Solução: Admin UI → Auth → Providers → [provider] → verificar e recopiar as credenciais do console do provider.

redirect_uri_mismatch

Causa: A URI de callback configurada no provider não bate com a do SuperDB.

Solução: No console do provider (Google Cloud, GitHub, etc.), garanta que a Redirect URI registrada seja exatamente: https://auth.superdb.com.br/oidc/callback — sem barra final, sem http.

tenant_suspended

Causa: O projeto foi suspenso por um platform_admin.

Solução: Platform → Customers → localizar o projeto → Reativar conta. Ver Suspender e reativar cliente.

email_not_confirmed

Causa: O usuário nunca clicou no link de confirmação de email após o signup.

Solução: Admin UI → Platform → Customers → [usuário] → Confirmar email manualmente. Ou reenvie o email de confirmação.

otp_expired

Causa: O código OTP ou link magic_link foi usado após a expiração (padrão: 1 hora).

Solução: Solicite um novo OTP/magic link. Se o tempo padrão for insuficiente, ajuste em Auth → Settings → magic_link_expiry_seconds.

Usando o Audit Log para rastrear

O Audit Log registra todas as tentativas de login com resultado, IP e timestamp.

  1. Acesse Platform → Audit Log.
  2. Filtre por tipo de evento: auth.login_failed.
  3. Filtre pelo email do usuário com problema.
  4. O campo error_code na linha indica o erro exato retornado.

Resolvendo "esqueci a senha" manualmente

Se o usuário não recebe o email de reset (spam, email incorreto), um admin pode resetar a senha diretamente:

bash — resetar senha de usuário via API
curl -X POST \
  https://superdb.com.br/platform/v1/projects/meu-projeto/users/{user_id}/reset-password \
  -H "Authorization: Bearer $PLATFORM_ADMIN_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "new_password": "SenhaTemporaria@123", "require_change": true }'

O campo require_change: true força o usuário a redefinir a senha no próximo login.

Essa página ajudou?