AcessoME-31
Login do painel
/admin/login
Entrada do painel admin — Sign in with Apple, restrito por allowlist de e-mail.
O que essa tela faz
É a porta de entrada do painel administrativo (/admin/*). O método de login é exclusivamente "Continuar com Apple" (Sign in with Apple, via Supabase Auth) — não existe login por e-mail e senha nesta tela. Depois do OAuth com a Apple, o sistema confere se o e-mail retornado está numa allowlist (ADMIN_EMAILS_PERMITIDOS, env var) — só quem está na lista entra, mesmo com um Apple ID válido.
Campo a campo
Não há campo de formulário — é um único botão de login social.
- Mensagem de erro (condicional, lida da URL) — se veio de um redirecionamento com
?erro=oauth, mostra "Login com a Apple falhou. Tenta de novo."; se veio com ?erro=nao_permitido, mostra "Esse Apple ID não tem acesso ao painel."
Ações disponíveis
- "Continuar com Apple" — chama
entrarComApple(), que inicia o OAuth com a Apple via
Supabase e redireciona pra tela de login da Apple; ao voltar, cai em /admin/login/callback.
- Callback (
/admin/login/callback, não é uma tela visível): troca o código OAuth pela
sessão; confere emailPermitido() contra a allowlist; se passar, garante que o usuário tem um perfil (profiles.tenant_id) — criado automaticamente se faltar — e redireciona pra /admin. Se o e-mail NÃO estiver na allowlist, a sessão é encerrada (signOut) e o usuário volta pra /admin/login?erro=nao_permitido.
- Existe também uma segunda revalidação (
confirmarComApple, usada por outras telas
sensíveis como WhatsApp/Instagram): repete o login Apple e, se confirmado, seta um cookie admin_face_sens_ok válido por 1 hora — não é acionada nesta tela diretamente.
Dúvidas frequentes
P: Fiz login com meu Apple ID e caiu de volta no login com um erro. R: Se a mensagem for "Esse Apple ID não tem acesso ao painel", seu e-mail não está na lista de e-mails autorizados (ADMIN_EMAILS_PERMITIDOS) — só o Marcos ou quem administra o sistema pode incluir um e-mail novo nessa lista (variável de ambiente na Vercel, não editável pelo painel).
P: Por que não tem login com senha? R: Decisão de segurança — o painel usa só Sign in with Apple (biometria/Face ID do próprio aparelho), sem senha pra vazar ou esquecer.
Erros comuns
| Mensagem exibida | Quando aparece | O que fazer |
|---|---|---|
"Login com a Apple falhou. Tenta de novo." (?erro=oauth) | O fluxo OAuth com a Apple falhou ou retornou sem código válido | Tentar de novo; se persistir, checar conexão/Apple ID |
"Esse Apple ID não tem acesso ao painel." (?erro=nao_permitido) | O e-mail retornado pela Apple não está em ADMIN_EMAILS_PERMITIDOS | Confirmar com quem administra o sistema se o e-mail precisa ser adicionado à allowlist |