brainax

Banco de dados e login

Aula 15 de 26 do curso “Vibe coding”. Grátis, com animações e teste.

Uma tabela, só que mais esperta

Banco de dados é um armazenamento organizado para os dados do seu app. Funciona como uma planilha. Uma linha é um registro, por exemplo um usuário. Uma coluna é um campo, uma propriedade desse registro. No esquema as colunas são id (número único da linha), email e streak (dias seguidos). Exemplo desta aula: você faz um tracker de estudos para a sua turma, e cada colega tem a própria linha.

Por que não no navegador

A IA costuma começar salvando dados no localStorage: um pequeno armazenamento dentro do navegador de um só aparelho. Para um rascunho, tudo bem. Mas você abre o tracker no celular e a sequência do notebook não está lá. Seu amigo também não vê. Limpou o navegador, sumiu tudo. Por isso dados compartilhados ficam no banco, à direita no esquema. O front-end pede, o servidor confere e salva.

Um back-end pronto

Você não precisa criar servidor e banco do zero. Existem back-ends prontos: a parte de servidor já montada para você. Supabase: banco Postgres (um banco de código aberto muito popular), login e armazenamento de arquivos. Firebase: um conjunto parecido do Google. Cloudflare D1: um banco simples para projetos na Cloudflare. Muitos têm plano grátis; veja os limites no site do serviço.

Login: não invente o seu

Auth (autenticação) é cadastro e login: o jeito de saber quem está do outro lado. A armadilha: pedir à IA “faz um login” e ganhar uma tabela caseira de senhas. Guardar senhas com segurança é difícil, e um vazamento atinge todo mundo. Use o login do provedor: Supabase ou Firebase guardam senhas com segurança e oferecem entrada por link no e-mail e pelo Google. No esquema o formulário está ligado à tabela: cada linha pertence a uma conta.

RLS: cada um vê o seu

Regras de acesso decidem quem pode ler e mudar quais linhas. No Supabase isso é RLS (Row Level Security, segurança por linha). A chave pública do Supabase fica no front-end, e isso é proposital. Mas sem RLS qualquer um com essa chave baixa a tabela inteira: o e-mail de todos os colegas. Com a regra “cada um vê só as próprias linhas”, como no cadeado do esquema, os dados alheios ficam fechados. A chave secreta, que ignora as regras, fica só no servidor.

Teste-se

  1. Por que guardar os dados do tracker num banco e não no localStorage?
    Resposta certa: O banco é comum a todos os aparelhos e usuários. O localStorage vive num navegador de um aparelho. O banco no servidor é acessível de qualquer aparelho e por quem tem permissão.
  2. Qual é o melhor jeito de colocar login no seu app?
    Resposta certa: Usar o login pronto de um provedor, como o Supabase. Guardar senhas com segurança é difícil. Os provedores fazem isso por você e oferecem login por e-mail e pelo Google.
  3. A chave pública do Supabase está no front-end e o RLS está desligado. O que acontece?
    Resposta certa: Qualquer um pode baixar a tabela inteira. A chave pública é visível para todos, é normal. Quem protege os dados são as regras RLS. Sem elas a tabela fica aberta.

← Domínio e DNS API: conectando outros serviços →