name: supabase-cloud-email-confirmation-bypass
description: Confirmar emails no Supabase Cloud quando a Management API não funciona — service_role vs PAT, e alternativas ao Dashboard.
Supabase Cloud — Confirmar Email de Usuário sem Dashboard
Problema
Usuário criado via API com email_not_confirmed e não é possível confirmar via Management API token.
O que NÃO funciona
- - Management API PAT (
sbp_...) — é token de plataforma, NÃO service_role key. Não consegue confirmar emails. - -
POST /v1/projects/{ref}/users/{id}/confirm— endpoint não existe na Management API - -
PATCH /auth/v1/users/{id}com anon key — 404 - -
DELETE /auth/v1/users/{id}— 404 - -
GET /auth/admin/v1/users— retorna vazio (sem service_role) - -
POST /v1/projects/{ref}/users/{id}/confirm→ 404 - -
POST /v1/projects/{ref}/users/{id}/send_recovery_email→ 404 - -
GET /v1/projects/{ref}/users→ 404 - -
DELETE /auth/v1/admin/users/{id}com token de login comum → 403 (não é service_role) - -
PUT /auth/v1/user(usuário comum logado) → 403 missing sub claim - -
anonkey = poder limitado, não consegue acessarauth.users - -
service_rolekey = admin total dentro do projeto, ignora RLS - - Management API PAT = token de plataforma Supabase.com, NÃO é service_role key
- -
auth.usersnão é exposto via PostgREST REST API — só via endpoints GoTrue diretamente - - Para criar usuário já confirmado, é necessário service_role key (não disponível no Supabase Cloud sem acesso ao Dashboard)
O que FUNCIONA (escolha uma)
Opção 1: Desabilitar confirmação de email no projeto (recomendado se todos os usuários são internos)
1. Dashboard: Project Settings → Authentication → Email → desabilitar "Confirm email"
2. Usuários existentes: deletar e recriar — agora já vêm confirmados
Opção 2: Confirmar manualmente via Dashboard
⚠️ Importante: A UI do Supabase NÃO mostra botão "Confirm email" nos 3 pontinhos.
1. Abrir: https://supabase.com/dashboard/project/{ref}/auth/users
2. Authentication → Users → clicar na linha inteira (não nos 3 pontinhos)
3. Painel lateral abre com 3 abas: Overview, Logs, Raw JSON
4. O email confirmado/apendência aparece em Overview — se pendente, não há botão para confirmar aqui
5. Se não houver botão "Confirm email" visível, a única opção é:
- Clicar em "Send password recovery" (envia email de redefinição de senha, o usuário cria nova senha e o email fica confirmado automaticamente)
- OU deletar o usuário e recriar
Opção 3: Deletar e recriar usuário já confirmado
`bash
Management API PAT (sbp_...) NÃO consegue deletar nem confirmar emails.
As únicas opções são via Dashboard ou service_role key.
Service_role key está em: Project Settings → API → "service_role" (não é a anon key!)
`
Armazenamento do Management API PAT
O PAT (sbp_...) é para operações de plataforma (criar projetos, listar projetos). Para operações de admin dentro de um projeto (confirmar users, listar auth.users), é preciso a service_role key do projeto (Project Settings → API → service_role).