O que é OAuth?
OAuth é um protocolo usado para trocar informações de autorização, permitindo que vários serviços online interajam sob a permissão do usuário. "OAuth 1.0" foi publicado como RFC 5849 em abril de 2010, e "OAuth 2.0" foi publicado como RFC 6749 em outubro de 2012.
Imagine que você queira postar uma foto no Instagram e compartilhá-la automaticamente no Twitter. Acessar manualmente ambos os serviços para fazer a mesma postagem pode ser tedioso. Em vez disso, o Instagram oferece um recurso chamado publicação cruzada, que permite o compartilhamento automático de suas postagens do Instagram em outras redes sociais, como o Twitter, usando suas APIs. Este processo é facilitado pelo OAuth.
Para postar no Twitter, a autenticação típica requer um ID de usuário e uma senha, o que é chamado de Autenticação Básica. No entanto, compartilhar essas credenciais confidenciais com outro serviço é arriscado. O OAuth resolve isso trocando informações de autorização em vez de credenciais de autenticação, concedendo permissões limitadas para a tarefa.
Na terminologia OAuth:
Para iniciar o processo, o cliente OAuth deve primeiro se registrar no servidor OAuth, fornecendo detalhes como o nome do application e o domínio. Se o servidor OAuth considerar o cliente confiável, ele atribuirá um ID de cliente.
Quando o usuário (Proprietário do Recurso) dá autorização, o cliente OAuth redireciona o usuário para o servidor OAuth. O servidor OAuth autentica o usuário e pergunta se as permissões indicadas devem ser concedidas ao cliente OAuth. Após a aprovação do usuário, o servidor o redireciona de volta ao cliente OAuth, concedendo um Token de Acesso. Este token serve como prova de autorização, permitindo que o cliente OAuth acesse a API do servidor OAuth. O token permanece válido até expirar ou ser explicitamente revogado.