Guias

O que é OAuth? “Entrar com o Google” e acesso delegado explicados

OAuth é um padrão aberto que permite a um usuário dar a um app acesso limitado à sua conta em outro serviço, sem entregar a senha. Quando você clica em “Conectar Google Agenda” e aparece uma tela perguntando “Permitir que este app veja seus eventos?”, isso é OAuth. O app recebe um token apenas para o que você aprovou, e você pode revogar esse acesso a qualquer momento. A mesma engrenagem, com uma camada extra chamada OpenID Connect, sustenta o “Entrar com o Google” e botões semelhantes.

Por que o OAuth importa quando você cria apps com IA

O OAuth aparece em duas situações comuns ao criar um app:

  1. Login social. Você quer que seus usuários “Entrem com o Google” (ou Apple, Microsoft, GitHub) em vez de criar mais uma senha. Veja como adicionar login ao seu app.
  2. Conectar às contas dos usuários em outros serviços. Seu app precisa ler a agenda de um usuário, publicar na conta dele em uma rede social, buscar arquivos no drive dele ou sincronizar dados contábeis.

Em ambos os casos, sua ferramenta de IA pode escrever o código, mas algumas etapas só você pode fazer: criar um app de desenvolvedor no provedor, obter um client ID e um client secret, registrar as URLs de callback e, para algumas permissões, passar pela análise do provedor. Entender como o OAuth funciona torna essas etapas — e os erros que elas geram — bem menos misteriosas. Para a visão geral do login, veja o que é autenticação.

Uma analogia do dia a dia

Pense em um cartão de chave de hotel. No check-in, a recepção confirma quem você é e entrega um cartão que abre o seu quarto e a academia — não os outros quartos, nem as áreas dos funcionários — e deixa de funcionar na hora do check-out. O cartão não contém o seu passaporte. Se você perder o cartão, a recepção o cancela e emite outro.

  • A recepção é o servidor de autorização (a página de login do Google).
  • A sua identificação é você entrando na conta do Google.
  • O cartão de chave é o access token.
  • “Só o quarto e a academia” são os escopos que você aprovou.
  • O check-out é o token expirando, ou você revogando o acesso.

O app que você está usando nunca vê a sua senha do Google, apenas o cartão de chave.

Como o OAuth funciona, passo a passo

O fluxo mais comum para apps web é o fluxo de código de autorização. Veja o que acontece quando um usuário conecta a sua Google Agenda a um app de agendamento:

  1. Clique. O usuário clica em “Conectar Google Agenda”.
  2. Redirecionamento ao provedor. O app envia o navegador ao Google com o seu client ID, os escopos que deseja (ler eventos da agenda) e o redirect URI, para onde o Google deve devolver o usuário.
  3. Login e consentimento. O usuário entra na conta do Google (se ainda não estiver logado) e vê uma tela de consentimento listando o que o app pede. Ele clica em Permitir.
  4. De volta com um código. O Google redireciona o navegador para o redirect URI do app com um código de autorização de uso único e curta duração.
  5. Troca no servidor. O servidor do app envia esse código, junto com o seu client secret, diretamente ao Google e recebe um access token (e, muitas vezes, um refresh token).
  6. Usar a API. O servidor chama a API da Google Agenda com o access token e obtém os eventos do usuário.

O callback do passo 4 tem mais ou menos esta cara:

https://seuapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

E a resposta com o token, no passo 5, é um JSON como este:

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

O ponto importante do desenho: a troca do token acontece de servidor para servidor, então o client secret e os tokens nunca precisam passar pelo navegador.

OAuth vs OpenID Connect vs login próprio

Que pergunta respondeExemplo
OAuth 2.0“O que este app pode fazer em nome do usuário?” (autorização)Ler a agenda de um usuário
OpenID Connect (OIDC)“Quem é este usuário?” (autenticação), construído sobre o OAuth“Entrar com o Google” devolvendo um e-mail verificado
Login próprio“Esta é a senha certa para esta conta?”E-mail e senha guardados (com hash) no seu banco de dados

Muitos apps combinam os três: login com e-mail e senha, mais “Entrar com o Google” via OIDC, mais conexões OAuth separadas com outros serviços.

Termos principais

TermoSignificado
Provedor / servidor de autorizaçãoO serviço em que o usuário entra e concede acesso — Google, Microsoft, GitHub.
ClienteSeu app, conforme registrado no provedor.
Client IDO identificador público do seu app no provedor.
Client secretA senha privada do seu app no provedor. Apenas no servidor.
EscopoUma permissão específica, como “ler a agenda” ou “ver o endereço de e-mail”.
Tela de consentimentoA página em que o usuário vê e aprova os escopos pedidos.
Redirect URI / URL de callbackPara onde o provedor devolve o usuário. Precisa estar registrada com antecedência e corresponder exatamente.
Access tokenCredencial de curta duração para chamar a API.
Refresh tokenCredencial de mais longa duração para obter novos access tokens. Guarde-a como uma senha.
ID tokenNo OIDC, um token assinado que descreve quem é o usuário.
PKCEUma verificação extra (“proof key”) que impede o uso de códigos interceptados. Recomendada para todos os clientes.
stateUm valor aleatório que protege o fluxo contra requisições forjadas.

Ideias equivocadas comuns

  • “OAuth é um sistema de login.” O OAuth puro concede acesso; o OpenID Connect cuida da identidade. Usar um access token simples como prova de quem é alguém já causou falhas de segurança reais.
  • “O app recebe a minha senha.” Nunca recebe. Esse é justamente o objetivo.
  • “Pedir mais escopos não faz mal.” Os usuários desconfiam de pedidos amplos, e provedores como o Google podem exigir análise do app para escopos sensíveis ou restritos. Peça apenas o que você precisa.
  • “O client secret pode ficar no frontend.” Tudo que está no código do navegador é público. Mantenha-o em segredos do lado do servidor.
  • “Funcionou nos testes, então vai funcionar em produção.” Os provedores costumam limitar apps não verificados — por exemplo, a usuários de teste listados —, e a URL de redirecionamento do seu domínio ativo precisa ser registrada separadamente.
  • “Os tokens duram para sempre.” Access tokens expiram rápido, e os usuários podem revogar o acesso. Seu app precisa lidar com as duas situações com elegância.

O que pedir à sua ferramenta de IA

  • “Adicione ‘Entrar com o Google’ usando OpenID Connect com uma biblioteca de autenticação bem mantida — não escreva o fluxo OAuth na mão.”
  • “Use o fluxo de código de autorização com PKCE e verifique o parâmetro state.”
  • “Leia o client ID e o client secret das variáveis de ambiente no servidor.”
  • “Peça apenas os escopos de que precisamos: acesso somente leitura à agenda.”
  • “Liste todas as URLs de redirecionamento que preciso registrar no console do provedor, para a prévia, a URL publicada e o meu domínio personalizado.”
  • “Guarde os refresh tokens criptografados no banco de dados e, quando um token expirar ou for revogado, peça ao usuário que conecte de novo.”
  • “Permita que os usuários desconectem a integração na página de configurações.”

OAuth e o Mythex

O Mythex não tem login de usuário final integrado para os apps que você cria; a documentação descreve uma abordagem de traga o seu próprio — você escolhe uma biblioteca de autenticação ou um provedor hospedado, guarda as chaves como segredos do projeto, e o agente escreve o código. A receita para adicionar autenticação tem um prompt inicial para isso. Você também encontra OAuth no próprio Mythex: pode se cadastrar com o Google, conectar o GitHub para sincronizar repositórios usa OAuth do GitHub, e assistentes de IA que se conectam ao Mythex via MCP passam por uma página de consentimento OAuth. Para saber mais, veja o que é autenticação e o que é autenticação de dois fatores.

Perguntas

O que é OAuth, em termos simples?

OAuth é um padrão para que um usuário permita que um app acesse a conta dele em outro serviço — como deixar um app de agendamento ler a sua Google Agenda — sem entregar a senha ao app. O usuário aprova permissões específicas, e o app recebe um token que pode usar apenas para elas.

OAuth é o mesmo que “Entrar com o Google”?

“Entrar com o Google” é construído sobre o OAuth 2.0 mais o OpenID Connect, uma camada sobre o OAuth que acrescenta um padrão para dizer ao app quem é o usuário. O OAuth sozinho trata de conceder acesso; o OpenID Connect é o que transforma isso em um login.

O que é um access token do OAuth?

Um access token é uma credencial que o app envia à API de um serviço para comprovar que recebeu acesso. Normalmente tem curta duração e se limita às permissões (escopos) que o usuário aprovou. Um refresh token, se for emitido, permite que o app obtenha novos access tokens sem pedir ao usuário de novo.

O que significa redirect_uri_mismatch?

Significa que a URL de callback que o seu app enviou durante o login não corresponde exatamente a uma registrada no console de desenvolvedor do provedor. Adicione a URL exata — incluindo https, domínio, caminho e qualquer barra final — para cada endereço em que o seu app roda.

O OAuth é seguro?

O OAuth 2.0 é amplamente usado e seguro quando implementado corretamente: com o fluxo de código de autorização com PKCE, URLs de redirecionamento exatas, o parâmetro state, e mantendo o client secret e os tokens no servidor. A maioria dos problemas vem de atalhos na implementação, por isso é recomendável usar uma biblioteca bem mantida.

Mythex · Pricing · Crie qualquer coisa com IA · Templates de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)