O que é o OAuth Connect e como usá-lo
Muitos de nós entram em contato com o OAuth quando navegam pela Web, e a maioria de nós nem sabe da existência dele. OAuth (Open Authentication) é um sistema que concede a sites de terceiros acesso limitado a contas de usuários, por exemplo, suas contas do Twitter ou Facebook. Ele permite que os visitantes interajam no site sem exigir registro de novas contas ou liberar seu nome de usuário e senha para terceiros.
Neste guia, gostaríamos de apresentar o conceito de OAuth e como ele pode se aplicar aos desenvolvedores. Há muitos detalhes técnicos envolvidos na implementação do seu próprio aplicativo OAuth. Meu exemplo será escrito em PHP usando um wrapper de biblioteca do Twitter, mas você pode usar praticamente qualquer API de programação popular do Python ao Ruby ou Objective-C.
Mesmo que o conceito pareça críptico, tente digerir o máximo que puder. Ainda é uma tecnologia muito misteriosa, tendo sido redigida em 2007. Eu certamente não entendi como desenvolver Conexões OAuth completas mesmo depois dos meus primeiros tutoriais, mas se você continuar com ela, você perceberá rapidamente. Agora primeiro para começar, uma pequena introdução!
Que problemas podemos resolver?
Se você considerar o quanto a Internet se tornou mais conectada, só faz sentido que os usuários desejem compartilhar informações entre várias contas do Facebook no Twitter, Tumblr, Foursquare e agora até mesmo em aplicativos móveis como Path ou Instagram. O problema que enfrentamos agora é como conseguir isso da maneira mais segura e simples possível. OAuth 1.0 é uma tentativa de resolver isso e vários outros problemas, em comparação com os antigos padrões OpenID. Os usuários ainda estão digitando seu nome de usuário / senha em outros sites de terceiros apenas para se conectarem ao OpenID. Isso não torna mais seguro para o usuário. Em especificações do OAuth, o usuário nunca precisa armazenar dados de contas pessoais em um banco de dados de terceiros.
(Fonte da imagem: Martin Hassman)
Com o OAuth, o principal provedor de conta (por exemplo, Twitter, Facebook) primeiro redirecionará você (o usuário) para uma página de autorização. O usuário então efetua login na rede principal e, em seguida, aceita ou nega uma nova conexão no site de terceiros. A tecnologia é fácil e você pode desautorizar as conexões das configurações da sua conta a qualquer momento. Observe que sua senha nunca é dada à terceira parte, o que torna este protocolo muito mais seguro do que seu equivalente.
Como o processo funciona
Há três partes a serem consideradas em uma chamada OAuth padrão:
- Provedor de serviço - A rede principal da qual você está tentando extrair dados. Eles fornecem a resposta da API, como seu nome de usuário, foto do perfil, URL do website e outras coisas.
- Consumidor - O aplicativo de terceiros que deseja receber dados. Esse seria o website ou o aplicativo para dispositivos móveis que faz a solicitação de conexão inicial e, em seguida, também lida com os dados de retorno após a autorização.
- Do utilizador - A pessoa sentada atrás do computador interagindo com os sites que seriam você!
O objetivo do OAuth não é fornecer uma biblioteca específica para sites usar. Na verdade, configura o “regras” para construir uma API de protocolo aberto. Então, enquanto todos nós podemos nos beneficiar dessa tecnologia, são desenvolvedores que realmente vão encontrar interesse nessa área. Se você precisar de mais informações, confira a edição v1.0 revisada, lançada em abril de 2010..
Enfrentando a segurança
Todo o processo, em última análise, requer duas chaves diferentes, juntamente com um token de acesso. As chaves são fornecidas pelo serviço raiz depois que você registra um aplicativo - elas são conhecidas como cliente e ID secreto. O ID do cliente geralmente é passado para o URL de autenticação para que o servidor reconheça seu aplicativo.
O código secreto é mantido em seu código para que o servidor possa verificar a identidade do seu aplicativo. Da mesma forma, o servidor remoto combinará seu ID secreto com o seu, para que você não envie, por engano, uma solicitação do Twitter para a API do Facebook, ou vice-versa. Se o usuário autorizar a conexão e todas as chaves corresponderem, elas serão retornadas ao seu site com um código longo de números aleatórios e letras.
Este código é usado para gerar um novo token de acesso. Eles se comportam de maneira semelhante a uma variável de sessão que você pode armazenar em um cookie para manter o usuário logado em seu site. A única diferença é que muitos serviços retornarão um Token de Acesso e um Token de Acesso Secreto. Você provavelmente precisará de ambos para extrair quaisquer dados do servidor. Um exemplo poderia estar solicitando a foto do perfil do usuário para salvar uma cópia em seu próprio site.
Exemplo de biblioteca para o Twitter OAuth
Os desenvolvedores não costumam começar do zero, então por que não procurar em uma biblioteca construída anteriormente? Isso nos poupará nosso tempo, e de dores de cabeça, ao trabalhar com PHP. Vamos analisar a construção de um exemplo realmente simples no topo da API do Twitter.
Eu recomendo altamente Twitter Async por Jaisen Mathai no GitHub. Ele funciona perfeitamente e até fornece alguns códigos de exemplo realmente simples que podemos observar. Você pode fazer o download do arquivo .zip por enquanto, mas antes de analisarmos o código, precisamos registrar e obter nossos IDs de aplicativo do Twitter.
Registrando um novo aplicativo
O Twitter Dev Center é um ótimo recurso para quem está começando a usar a API. Ele foi escrito e reescrito várias vezes ao longo de alguns anos. A página que queremos é https://dev.twitter.com/apps/new. Ele pedirá que você faça login primeiro e, em seguida, precisará inserir algumas credenciais para um novo aplicativo.
O nome e a descrição do aplicativo são exibidos quando o usuário vai autorizar com o Twitter. Seu URL da Web também é importante para distinguir o endereço de terceiros. Seria mais fácil trabalhar com um domínio ativo, embora você possa usar o localhost para testes, mas eu não encorajo esse método. É tão fácil se inscrever para um host gratuito e executar seus scripts de lá.
O URL de retorno de chamada é declarado como o destino final depois que os visitantes aceitam ou negam a autorização. É seu trabalho como programador ler a resposta do Twitter e enviar uma mensagem de acordo com isso. Na biblioteca Async, já temos algumas credenciais, mas elas não funcionarão, já que o URL de retorno de chamada é especificado para um blog externo. Se você estiver interessado em criar um aplicativo da web OAuth totalmente conectado, incluí alguns tutoriais detalhados abaixo.
Confira o código
Se você estiver usando um host remoto, poderá descompactar as bibliotecas Async e enviá-las para um novo diretório. Caso contrário, você pode apenas verificar o código-fonte. É provável que não consigamos fazer uma nova conexão de qualquer maneira. Mas a experiência prática com o upload e a edição do código-fonte é sempre um processo de aprendizado.
No diretório raiz, você encontrará um script chamado simpleTest.php. Inside é um monte de códigos PHP relacionados às bibliotecas OAuth incluídas. Não serei capaz de juntar tudo para você, mas devemos olhar para um importante bloco de código para apontar detalhes notáveis.
Existem 4 variáveis muito importantes para a chave do consumidor e o ID secreto, juntamente com o ID do token e do token secreto. Nem todos os serviços da API exigirão esse conjunto de 4, mas é o protocolo OAuth adequado. A classe EpiTwitter requer todos os 4 valores como parâmetros e gera o URL de conexão no Twitter.
https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE
Com esse novo URL dinâmico, você pode criar um botão de login para seus usuários. Isso os direcionaria primeiro para uma página segura da API do Twitter, na qual o usuário aceita ou nega sua conexão. Independentemente da sua escolha, o usuário é redirecionado para o URL de retorno de chamada do aplicativo. Todo o protocolo aberto tem uma perspectiva muito clara que permite um rápido desenvolvimento, especialmente com bibliotecas disponíveis em praticamente todas as línguas..
Links Relacionados
- hueniverse oauth 1.0 guia
- Introdução suave ao OAuth
- FAQ do OAuth
- Guia de desenvolvimento de autenticação do Facebook
- Simples Twitter OAuth Signin
- Usando o OAuth com o Twitter no Cocoa Objective-C
- Consumindo OAuth Inteligentemente em Trilhos
Conclusão
Espero que esta introdução ao OAuth tenha te interessado em criar aplicativos sobre o protocolo. Muitos desenvolvedores estão se esforçando para obter essa solução, e o OAuth 2.0 pode ser o futuro das redes sociais interconectadas. Já utilizei mais de duas dúzias de conexões na minha conta do Twitter e fiquei realmente impressionado com a documentação do desenvolvedor!
Claramente, há muito a dizer sobre esse assunto. Não é algo que você pode ser capaz de processar completamente de uma só vez. Navegue pela rede para obter mais soluções OAuth e informe-nos seus pensamentos na área de discussão abaixo.