Auth com Google OAuth no Supabase
Autenticação é daquelas áreas onde "quase certo" é igual a "errado" — e onde vibe coding pede revisão dobrada. No ClubPetro o login roda sobre o Supabase Auth com Google OAuth. Este post mostra como pensamos essa camada.
Por que Supabase Auth + Google
A plataforma é interna: quem entra é o time (CSMs, gestores, etc.). Google OAuth resolve isso com elegância — ninguém cria senha, o acesso usa a conta corporativa que a pessoa já tem, e o Supabase cuida da sessão e da identidade.
Onde auth encontra os dados
Aqui está o pulo do gato que liga este post ao #20: o usuário autenticado pelo Supabase é exatamente quem as policies de RLS avaliam. Auth e RLS são dois lados da mesma moeda:
- Auth responde "quem é você?".
- RLS responde "o que você, sendo quem é, pode ver?".
Login bom com RLS frouxo não protege nada. RLS rígido sem auth correto trava todo mundo. Os dois andam juntos.
O atalho de desenvolvimento (e o cuidado que ele exige)
Pra não ter que logar a cada hot-reload, existem flags de dev: SKIP_AUTH, DEV_USER_EMAIL. Elas são uma faca de dois gumes:
- Facilitam o desenvolvimento local.
- Mas nosso
.env.locallocal aponta pra produção. Então mexer com auth em dev é mexer perto de dado real. Cuidado redobrado — e jamais leve flag de bypass pra um ambiente exposto.
Vibe coding em auth: a coleira
Auth é território de revisão dobrada (lembra do #05, "quando não usar vibe coding"). A IA pode rascunhar fluxo, callback, guard — mas:
- Revise cada decisão de permissão à mão. Um guard errado abre porta.
- Teste o caminho de quem NÃO devia entrar, não só o feliz.
- Secret é secret. Chave de OAuth, service role key — nunca no código, sempre em variável de ambiente.
- Service role key ignora RLS. Use no servidor, com consciência; nunca exponha no client.
A divisão de trabalho
A IA acelera o boilerplate de auth (telas, callbacks, hooks). Decidir o modelo de permissão e validar que ele está fechado é humano e inegociável. Em segurança, a gente é Leal a Dados de um jeito específico: testa o acesso negado, não confia que "deve estar ok".
⚠️ Armadilha #22: validar auth só pelo caminho feliz ("loguei, entrei, funciona"). O que importa em segurança é o caminho que deveria falhar — e esse quase nunca é testado por quem só viu dar certo.
Próximo da série: #23 — Realtime, Storage e o resto do Supabase.