Como Adicionar Login à Sua App: Palavras-passe, Links Mágicos, Google e Perfis
Para adicionar login a uma app, escolha um método — email e palavra-passe, links mágicos (um link de início de sessão de utilização única enviado por email) ou «Iniciar sessão com o Google» — e implemente-o com uma biblioteca de autenticação comprovada ou com um fornecedor alojado, em vez de o fazer do zero. Depois, decida o que cada tipo de utilizador pode fazer (perfis) e aplique isso no servidor em cada página e pedido à API. As sessões devem usar cookies seguros, expirar e terminar corretamente ao sair.
Este guia percorre cada escolha e os detalhes que separam um login que funciona de um login seguro. Para os conceitos por detrás disto, veja o que é a autenticação.
Decida primeiro: precisa mesmo de login?
O login acrescenta atrito e responsabilidade. Precisa dele quando:
- Os utilizadores têm dados privados (as suas marcações, documentos, faturas)
- Os utilizadores podem alterar coisas que outros vão ver
- Cobra pelo acesso
- Pessoas diferentes precisam de permissões diferentes (proprietário vs colaborador vs cliente)
Pode não precisar dele para um site de marketing, um diretório público ou um formulário que apenas lhe envia um email. Uma lista de espera não precisa de contas; um campo de email chega.
Os quatro métodos de login mais comuns
| Método | Como funciona | Vantagens | Desvantagens |
|---|---|---|---|
| Email + palavra-passe | O utilizador cria uma palavra-passe; guarda-se um hash dela | Familiar, funciona sem depender do email | Recuperações, reutilização, fugas de dados; tem de guardar as palavras-passe com segurança |
| Link mágico | O utilizador escreve o email e clica num link que lhe enviou | Não há palavras-passe para guardar ou esquecer | Depende da entrega de emails; o início de sessão é mais lento |
| Código de utilização única | O utilizador escreve o email e digita um código de 6 dígitos | Funciona quando os links abrem no navegador errado | A mesma dependência do email |
| Social / OAuth (Google, Apple, GitHub, Microsoft) | Outro fornecedor confirma quem é o utilizador | O mais rápido para os utilizadores; não tem palavras-passe para guardar | Os utilizadores precisam dessa conta; configuração no fornecedor |
Muitas apps combinam dois: o login Google mais links mágicos por email é uma combinação popular que cobre a maioria das pessoas sem guardar palavras-passe.
Email e palavra-passe
Se oferecer palavras-passe, estes são os requisitos essenciais:
- Faça o hash das palavras-passe com um algoritmo de hashing lento. As orientações da OWASP sobre armazenamento de palavras-passe recomendam Argon2id, com scrypt, bcrypt ou PBKDF2 como alternativas. Nunca guarde palavras-passe em texto simples nem com um hash geral rápido.
- As recuperações de palavra-passe usam um link aleatório, de utilização única e com validade, enviado para o email verificado.
- Não revele que emails têm conta. «Se esse email estiver registado, enviámos um link de recuperação» é melhor do que «Conta não encontrada».
- Limite as tentativas de início de sessão e de recuperação para abrandar a adivinhação de palavras-passe.
- Permita palavras-passe longas e gestores de palavras-passe; dispense regras que obrigam a combinações estranhas de caracteres.
Links mágicos e códigos de utilização única
Um link mágico é um link de início de sessão enviado por email ao utilizador. Ao clicar, o utilizador entra. Um código de utilização única é a mesma ideia, mas digitado em vez de clicado.
- Os links e códigos expiram rapidamente e funcionam apenas uma vez.
- O link deve iniciar sessão no dispositivo onde foi clicado, e o token não pode ficar em registos nem em ferramentas de analytics.
- Precisa de um envio de emails fiável — veja como enviar emails a partir da sua app. Teste com Gmail e Outlook, e verifique a pasta de spam.
Iniciar sessão com o Google (e outros fornecedores OAuth)
«Iniciar sessão com o Google» usa OAuth e OpenID Connect: a Google confirma quem é o utilizador e diz à sua app o email e o nome dele. A configuração, a partir de setembro de 2026, faz-se na secção Google Auth Platform da Google Cloud Console:
- Crie ou selecione um projeto e preencha a página Branding — o que os utilizadores veem no ecrã de consentimento (nome da app, email de suporte, logótipo).
- Na página Clients, crie um cliente do tipo «Web application».
- Adicione as suas authorized JavaScript origins e os redirect URIs — os endereços exatos onde a sua app corre e para onde a Google devolve o utilizador depois do início de sessão.
- Guarde o client ID e o client secret nos segredos da sua app.
Coisas que costumam correr mal, segundo a documentação OAuth da Google:
redirect_uri_mismatch: o endereço de redirecionamento tem de corresponder exatamente, incluindohttpvshttps, maiúsculas e minúsculas e qualquer barra final. Adicione um para o seu endereço de Preview e outro para o seu domínio em produção.- HTTPS obrigatório: os redirect URIs têm de usar HTTPS, exceto
localhostdurante o desenvolvimento. - O parâmetro
statedeve ser verificado no regresso, para proteger contra falsificação de pedidos entre sites. As boas bibliotecas fazem isto por si.
Se pedir apenas informação básica de início de sessão (nome, email, perfil), a Google diz que a verificação da app não é obrigatória. Pedir acesso ao Gmail, Drive ou Calendar dos utilizadores é diferente e exige verificação.
Construir ou usar um fornecedor?
| Abordagem | Exemplos | Quando encaixa |
|---|---|---|
| Fornecedor de autenticação alojado | Serviços que alojam o início de sessão, a gestão de utilizadores e as sessões por si | Quer o login a funcionar rapidamente com menos responsabilidade de segurança |
| Biblioteca de autenticação na sua app | Bibliotecas de código aberto para a sua framework | Quer os utilizadores na sua própria base de dados e sem taxas por utilizador |
| Escrever você mesmo | — | Quase nunca. Há demasiados detalhes subtis |
As duas primeiras são razoáveis. Os fornecedores alojados tratam de mais coisas, mas acrescentam uma dependência e por vezes cobram por utilizador ativo; confirme os preços atuais nos sites deles. As bibliotecas mantêm tudo na sua base de dados, mas deixam-lhe mais para configurar corretamente. Qualquer que escolha, peça à IA que use a solução em vez de criar lógica de palavras-passe ou de sessões à mão.
Perfis e permissões
O login diz-lhe quem é alguém. As permissões decidem o que essa pessoa pode fazer. Mantenha simples no início:
| Perfil | Permissões típicas |
|---|---|
| Visitante | Ver páginas públicas |
| Membro / cliente | Ver e editar os seus próprios registos |
| Colaborador | Ver todos os registos da sua equipa ou negócio; não pode alterar definições nem faturação |
| Proprietário / administrador | Tudo, incluindo utilizadores e faturação |
Regras que importam mais do que os nomes dos perfis:
- Verifique no servidor, sempre. Esconder um botão na página não impede ninguém de chamar a API diretamente.
- Limite pelo proprietário. Um membro que pede «marcação 123» só a deve receber se for dele.
- Os utilizadores não se podem promover a si próprios. Ignore campos de perfil enviados pelo browser ao atualizar o perfil.
- Por defeito, sem acesso. Novas rotas devem exigir início de sessão, a não ser que decida o contrário.
Teste com duas contas: inicie sessão com uma, anote o ID de um registo, inicie sessão com a outra e tente abri-lo. A nossa lista de segurança tem o teste completo.
Segurança da sessão
Depois do login, a app lembra o utilizador através de uma sessão — normalmente um cookie. As orientações da OWASP sobre gestão de sessões recomendam:
- Cookies de sessão definidos com
Secure(apenas HTTPS),HttpOnly(ilegíveis por scripts da página) eSameSite - Um novo ID de sessão emitido no início de sessão, e de novo quando os privilégios mudam
- Um tempo limite por inatividade e uma duração máxima absoluta, aplicados no servidor
- Um terminar de sessão que encerra a sessão no servidor, e não apenas apaga o cookie
- Sessões invalidadas quando o utilizador altera a palavra-passe
Guardar tokens de login no armazenamento local do browser é comum em tutoriais, mas expõe-nos a qualquer script a correr na página; os cookies seguros são normalmente a melhor opção por defeito para apps web.
Um prompt que cobre o essencial
Adicione contas de utilizador a esta app. Os utilizadores podem registar-se e iniciar sessão com email e palavra-passe, ou com o Google. Use [biblioteca ou fornecedor] em vez de código de autenticação próprio. Faça o hash das palavras-passe com Argon2id ou bcrypt. Adicione recuperação de palavra-passe por email com um link de utilização única que expire em uma hora. Guarde as sessões em cookies seguros e HttpOnly. Proteja /dashboard e cada rota /api para que só utilizadores com sessão iniciada as possam usar, e garanta que os utilizadores só veem os seus próprios projetos. Adicione um perfil «admin» que possa ver todos os utilizadores; só os administradores podem aceder a /admin, verificado no servidor.
Depois teste: registe-se, saia, volte a entrar, recupere a palavra-passe, tente um URL privado sem sessão iniciada e tente aceder ao registo de outro utilizador.
Erros comuns no login criado com IA
- Proteção só na página. A página redireciona utilizadores sem sessão, mas a API devolve dados a qualquer pessoa.
- Segredos no browser. Os client secrets OAuth e as chaves de administração do fornecedor de autenticação pertencem ao servidor.
- URLs de Preview e de produção trocados. O redirect URI da Google ou a ligação do email de recuperação aponta para o Preview, e o login deixa de funcionar depois de publicar.
- Sem verificação de email. Qualquer pessoa pode registar-se como alguem@empresa.com. Verifique o email antes de conceder algo ligado a esse endereço.
- Testar apenas o caminho feliz. Experimente palavras-passe erradas, links expirados e uma segunda conta.
Adicionar login na Mythex
Na Mythex, o login para os utilizadores da sua app é algo que acrescenta à sua app — é separado da sua própria conta Mythex. A Mythex não oferece um produto de autenticação integrado, por isso traz uma biblioteca ou fornecedor de autenticação e as respetivas chaves:
- Escolha uma abordagem — por exemplo, email e palavra-passe guardados na sua base de dados, ou o SDK de um fornecedor alojado.
- Se guardar os utilizadores você mesmo, a app precisa de uma base de dados; peça-a no chat ou use
/database. - Coloque as chaves do fornecedor nos segredos do projeto (
/secretsou nas definições do projeto). - Use um prompt como o de cima e teste no Preview. Para o login Google, adicione redirect URIs tanto para o seu Preview como para o endereço publicado.
Veja Adicionar login à sua app na documentação. Se estiver a construir um produto pago, como construir um MVP de SaaS aborda contas e faturação em conjunto.
Perguntas
Qual é o login mais fácil de adicionar a uma app?
Usar um fornecedor de autenticação alojado ou uma biblioteca de autenticação bem mantida costuma ser o mais fácil e seguro, porque as sessões, o armazenamento de palavras-passe e as recuperações já estão tratados. Iniciar sessão com o Google é a opção com menos atrito para utilizadores que têm conta Google.
Os links mágicos são mais seguros do que as palavras-passe?
Eliminam a reutilização de palavras-passe e as palavras-passe fracas, mas transferem o risco para a conta de email do utilizador. Os links devem expirar rapidamente e funcionar apenas uma vez. Para a maioria das apps pequenas são uma escolha razoável, muitas vezes oferecida em conjunto com o login Google.
Preciso de aprovação da Google para adicionar Iniciar sessão com o Google?
Se pedir apenas informação básica de início de sessão (nome, email e perfil), a Google diz que a verificação não é obrigatória, embora ainda tenha de configurar um ecrã de consentimento e um cliente OAuth. Pedir acesso a dados sensíveis como o Gmail ou o Drive exige a verificação da app pela Google.
Qual é a diferença entre login e permissões?
O login (autenticação) confirma quem é o utilizador. As permissões (autorização) decidem o que esse utilizador pode ver e fazer. Uma app precisa de ambos, e as permissões têm de ser verificadas no servidor em cada pedido.