Pular para o conteúdo
supastack
Explorar a documentação

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/web/google-sign-in.md (or send Accept: text/markdown).

Adicionar o início de sessão com Google

Crie um cliente OAuth do Google Cloud gratuito e ligue «Continuar com Google» à app.

Passo a passo para iniciantes

Pré-requisitos: a app web a correr em local (Online em 5 minutos) e um banco de dados migrado para contas reais (Configurar a base de dados). Precisa de uma conta Google normal; tudo aqui é gratuito e leva cerca de 10 minutos.

Terminologia rápida: OAuth é o padrão em que a Google inicia a sessão do utilizador na página da Google e entrega uma prova à sua app. Um projeto Google Cloud é um contentor na consola da Google que guarda as credenciais da app. O ecrã de consentimento OAuth é a página que a Google mostra aos utilizadores antes de os devolver. Um client ID identifica a sua app perante a Google; o client secret é a sua palavra-passe e fica no servidor.

1. Crie um projeto Google Cloud. 2. Configure o ecrã de consentimento. 3. Crie um cliente OAuth Web e copie o ID e o segredo. 4. Cole três valores em apps/web/.env.local e reinicie o servidor de desenvolvimento.

Um único projeto chega para todo o produto: o mesmo projeto Google Cloud irá depois alojar a sua implementação no Cloud Run, e o início de sessão mobile passa pelo mesmo backend web — não cria um cliente separado por plataforma ou recurso.

Criar o projeto Google Cloud

1. Abra console.cloud.google.com e inicie sessão com a sua conta Google.

2. Clique no menu de projeto na barra superior (junto ao logótipo do Google Cloud) e escolha New Project.

3. Dê-lhe um nome — o nome do produto serve — e clique em Create. Não é necessária organização, cartão nem conta de faturação para credenciais de início de sessão.

Esperado: a consola recarrega para o novo projeto e o nome aparece na barra superior. Reutilize este projeto quando chegar ao guia de implementação em vez de criar outro.

Criar o cliente OAuth

1. Abra APIs & Services → Credentials → + Create Credentials → OAuth client ID.

2. Defina Application type como Web application e dê-lhe um nome como supastack local.

3. Em Authorized JavaScript origins adicione http://localhost:3000. Em Authorized redirect URIs adicione http://localhost:3000/api/auth/callback/google — esse caminho de callback pertence ao Better Auth, o motor de autenticação predefinido do kit: {APP_URL}/api/auth/callback/google.

4. Clique em Create e copie o Client ID e o Client Secret da caixa de diálogo. Pode reabrí-los na página do cliente mais tarde, mas copiá-los agora poupa um passo.

Para produção, crie um segundo cliente Web (recomendado) ou adicione a este: origem JavaScript https://yourdomain.com e URI de redirecionamento https://yourdomain.com/api/auth/callback/google. Manter clientes separados por ambiente significa que um segredo local comprometido não consegue chegar à produção.

Adicionar os valores à app

Abra apps/web/.env.local — o Next.js lê este ficheiro, não o .env da raiz — e preencha as três linhas abaixo. AUTH_GOOGLE_ENABLED=true ativa o botão; o par de cliente identifica o seu cliente Google Cloud.

O client secret é apenas do servidor: nunca deve aparecer numa variável NEXT_PUBLIC_ ou EXPO_PUBLIC_ nem ser enviado para o Git. Em produção, defina os mesmos três nomes no cofre de segredos do seu host em vez de um ficheiro env.

Reinicie o servidor de desenvolvimento depois de editar — as alterações de ambiente só são lidas no arranque.

# apps/web/.env.local
AUTH_GOOGLE_ENABLED=true
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret

Verificar e resolver problemas

Abra http://localhost:3000/auth, clique no botão da Google, conclua o ecrã de consentimento da Google e confirme que a app regressa com sessão iniciada.

redirect_uri_mismatch significa que o URI de redirecionamento registado na Google não corresponde exatamente — verifique o protocolo (http vs https), a porta e o caminho: deve terminar em /api/auth/callback/google, não em /callback/google/ nem numa variante com barra final.

Access blocked / has not completed the Google verification process significa que o ecrã de consentimento ainda está em Testing e a conta que inicia sessão não está listada em Test users — adicione-a na secção Audience.

Se o botão da Google faltar ou o início de sessão continuar a falhar depois de editar .env.local, reinicie o servidor de desenvolvimento. Se o arranque falhar nomeando uma variável, a flag está ativa sem o seu par de cliente completo.

Perguntas frequentes

14 perguntas

O que é o supastack?

O supastack é uma base modular para construir produtos SaaS com IA. Reúne a infraestrutura comum para que possas concentrar-te nas funcionalidades próprias do teu produto.

Suporta web e mobile?

Sim. O supastack inclui apps Next.js e Expo como pontos de partida para experiências web e mobile.

Que autenticação está incluída?

O Better Auth cobre email/palavra-passe, OTP e login social. Os workspaces pessoais são aprovisionados com a conta para que os registos fiquem delimitados desde o primeiro dia.

Como é suportada a IA?

O supastack inclui IA multi-fornecedor configurável, registo de utilização, orçamentos e suporte encriptado de chaves próprias (BYOK).

Como são geridas as subscrições?

Para produtos construídos sobre o kit, a faturação Stripe, as subscrições e as permissões formam a base do acesso pago. Os segredos de fornecedor ficam no servidor.

Onde vive o código próprio do meu produto?

As funcionalidades próprias do produto ficam num codebase separado, enquanto o produto configura e integra os módulos base do supastack.

Como funciona o preço do supastack?

O kit é uma compra única com atualizações vitalícias: Uma framework por 249 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 349 $) ou Todas as frameworks (Next.js, iOS, Android) por 499 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 599 $), mais 75 $ por lugar de programador adicional. Sem subscrição do kit. O checkout neste site entrega a tua chave de licença por email, com acesso ao repo por convite GitHub.

Como é que os workspaces delimitam os meus dados?

Os registos do utilizador são delimitados por workspaceId. Identidade, permissões, utilização de IA, eventos de faturação e entradas de auditoria ficam dentro do limite do workspace pessoal.

Como funcionam os jobs em segundo plano?

O Trigger.dev é o runtime de jobs explícito. O contrato JobRunner só promete enqueue, status e cancel — a semântica de workflow permanece específica e explícita do Trigger.dev.

Como difere o email da divulgação?

O email transacional cobre fluxos de produto como avisos de conclusão de tarefas. A divulgação fria e as campanhas pertencem ao próprio produto, fora do módulo de email deste kit.

Como funcionam as compras no aplicativo móvel?

O aplicativo móvel inclui compras nativas e restauração via RevenueCat, com acesso verificado pelo servidor. Configure as contas das lojas e conclua os testes em dispositivos antes de publicar. A cobrança web permanece separada.

Onde residem as chaves dos fornecedores de IA?

As credenciais BYOK são encriptadas e ficam no servidor. As chaves são higienizadas nos logs; a utilização e os orçamentos ficam visíveis ao nível do workspace.

Quais métodos de pagamento o checkout aceita?

O checkout hospedado na Stripe aceita cartões e também pode oferecer Alipay e WeChat Pay quando essas carteiras estiverem ativadas na conta Stripe — útil para compradores na China. As autorizações de carteira são confirmadas de forma assíncrona, então a página da licença é atualizada assim que o pagamento é liquidado.

Posso solicitar um reembolso?

Depois de obter acesso ao repositório, o supastack é seu para sempre, portanto não pode ser reembolsado. Mas fique tranquilo: você recebe o código-fonte completo com atualizações vitalícias para criar e lançar produtos ilimitados para você ou seus clientes. Você apenas não pode revender o código nem redistribuir o repositório como starter kit ou modelo.

PT
Tema