Login com Supabase
E-mail e senha (e os métodos que você listar) com rota protegida e sessão que sobrevive ao reload.
Quando usar
Use quando o projeto já tem, ou vai ter, Supabase. Não use se a autenticação for de outro fornecedor: troque o prompt em vez de deixar o modelo misturar os dois.
Variáveis
[APP_NAME][STACK][METHODS][AFTER_LOGIN][PROTECTED_ROUTES]
Copiar prompt
Adicione autenticação com Supabase ao app [APP_NAME], no stack [STACK]. Decisões já tomadas - Métodos: [METHODS] - Para onde ir depois do login: [AFTER_LOGIN] - Rotas que exigem sessão: [PROTECTED_ROUTES] Não troque a biblioteca de UI do projeto. Não crie um backend paralelo de usuários. Implementar - Cadastro, login e sair, só com os métodos de [METHODS]. - Se [METHODS] incluir e-mail/senha: senha com mínimo de 8 caracteres, mensagem genérica quando o login falha (não diga se o e-mail existe). - Sessão que continua depois de recarregar a página. - [PROTECTED_ROUTES] redireciona para o login quando não há sessão, e volta para a URL original depois. - Botão de sair que limpa a sessão e manda para a página pública. - Variáveis de ambiente documentadas num .env.example. A chave anon/public pode ir no cliente. A service_role não pode. Se você precisar dela, deixe num servidor e diga o arquivo. Não fazer - Não imprimir a sessão no console em produção. - Não guardar senha em localStorage. - Não desligar a confirmação de e-mail sem eu pedir. Entrega 1. Arquivos alterados, em lista. 2. Passos no painel do Supabase (URL de redirect, provedor) que o código não configura sozinho. 3. Um teste manual: cadastrar, sair, entrar, abrir uma rota protegida sem sessão, recarregar já logado. Se o repositório não tiver cliente Supabase, crie a menor ligação possível e pare para eu colar a URL e a anon key. Não invente essas duas strings.
Como rodar este prompt
- Liste os métodos. E-mail/senha é o padrão. Só acrescente OAuth se METHODS citar o provedor.
- Aponte as rotas. PROTECTED_ROUTES é a lista que precisa de sessão.
- Revise a chave. Procure service_role no código do browser antes de commitar.
Onde isso quebra
A chave service_role não pode ir para o cliente. O prompt pede para apontar o arquivo se isso acontecer. Confirme o redirect do e-mail no painel, porque o código sozinho não prova isso.
Resultado
Espaço para screenshot ou demo. Ainda não há resultado publicado.