Checklist de diagnóstico
Execute estes passos em ordem antes de investigar erros específicos:
- O projeto está com status Ativo? (Platform → Projetos — verificar se não está suspenso)
- O provider OAuth está habilitado? (Auth → Providers — verificar se o provider usado está ativo)
- A Redirect URI está correta no provider externo? (deve ser exatamente
https://auth.superdb.com.br/oidc/callback) - O container
authestá UP? (docker compose ps auth) - O JWT_SECRET está configurado e não foi alterado recentemente?
- 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.
- Acesse Platform → Audit Log.
- Filtre por tipo de evento:
auth.login_failed. - Filtre pelo email do usuário com problema.
- O campo
error_codena 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:
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.