OAuth
OAuth é um protocolo aberto de autorização que permite que um usuário conceda acesso limitado a suas informações em um sistema, sem precisar compartilhar sua senha diretamente com o serviço solicitante.
OAuth é o mecanismo por trás de botões como "entrar com Google" ou "conectar com GitHub". Em vez de o usuário digitar sua senha do Google dentro do site que está pedindo o login, ele é redirecionado para o Google, autentica lá, e o Google devolve um token de acesso limitado ao site solicitante.
O protocolo define papéis claros: o usuário dono dos dados, o cliente que quer acessar esses dados, o servidor de autorização que emite os tokens, e o servidor de recursos que efetivamente guarda os dados protegidos.
OAuth é sobre autorização, não autenticação pura
Embora seja usado para login social, o OAuth em sua origem resolve autorização de acesso a recursos, não confirmação de identidade. Por isso, para autenticação de identidade de forma padronizada, uma camada adicional chamada OpenID Connect costuma ser usada em cima do OAuth.
Como funciona na prática
- O usuário clica em um botão de login social, como entrar com Google
- Ele é redirecionado para o provedor, onde confirma a própria identidade
- O usuário autoriza o escopo de acesso solicitado pela aplicação
- O provedor gera um token e redireciona o usuário de volta ao site original
- A aplicação usa esse token para acessar apenas os dados autorizados, sem nunca ver a senha do usuário
Exemplo Prático
Um site permite que usuários façam login usando a conta do Google. Ao clicar no botão, o usuário autentica no próprio Google, e o site recebe apenas um token de acesso limitado, sem nunca ter contato com a senha da conta.
Por que isso é importante?
OAuth importa porque elimina a necessidade de sistemas terceiros armazenarem senhas de usuários, reduzindo drasticamente o risco de vazamento de credenciais em caso de invasão.
Perguntas Frequentes (FAQ) sobre OAuth
OAuth e JWT são a mesma coisa?
Não. OAuth é o protocolo de autorização, enquanto JWT é um formato de token que pode ser usado dentro de um fluxo OAuth.
Login social é sempre mais seguro que senha própria?
Tende a ser mais seguro para o usuário final, já que a senha nunca é compartilhada com o site solicitante, apenas com o provedor de identidade confiável.