Visão geral
A implementação no navegador do Sign in with X é baseada em OAuth. Esta página demonstra as requisições necessárias para obter um access token para o fluxo de sign in. Para usar o fluxo “Sign in with X”, vá até as configurações do seu app do X e certifique-se de que a opção “Allow this app to be used to Sign in with X?” esteja habilitada. Esta página assume que o leitor sabe como assinar requisições usando o protocolo OAuth 1.0a. Se você quer saber como assinar uma requisição, leia a página Autorizando uma requisição. Se você quer verificar a assinatura das requisições nesta página, o consumer secret usado é:Passo 1: Obtendo um request token
Para iniciar um fluxo de sign-in, seu app do X deve obter um request token enviando uma mensagem assinada para POST oauth / request_token. O único parâmetro exclusivo nesta requisição éoauth_callback, que deve ser uma versão codificada em URL da URL para a qual você deseja que seu usuário seja redirecionado quando concluir o passo 2. Os parâmetros restantes são adicionados pelo processo de assinatura OAuth.
Observação - Qualquer URL de callback usada com o endpoint POST oauth / request_token terá que ser listada nas configurações do app do X no developer console.
Exemplo de requisição (o header Authorization foi quebrado):
200 indica falha. O corpo da resposta conterá os parâmetros oauth_token, oauth_token_secret e oauth_callback_confirmed. Seu app deve verificar se oauth_callback_confirmed é true e armazenar os outros dois valores para os próximos passos.
Exemplo de resposta (o corpo da resposta foi quebrado):
Passo 2: Redirecionando o usuário
O próximo passo é direcionar o usuário para o X para que possa concluir o fluxo apropriado, conforme descrito em Fluxo de sign-in no navegador. Direcione o usuário para GET oauth / authenticate, e o request token obtido no passo 1 deve ser passado como o parâmetrooauth_token.
A forma mais fluida de um site implementar isso seria emitir um redirect HTTP 302 como resposta à requisição original de “sign in”. Apps móveis e desktop devem abrir uma nova janela do navegador ou direcionar para a URL via uma web view incorporada.
Exemplo de URL para redirecionar:
- Conectado e aprovado: Se o usuário está conectado no x.com e já aprovou a aplicação que faz a chamada, ele será imediatamente autenticado e retornado à URL de callback com um request token OAuth válido. O redirecionamento para o x.com não é óbvio para o usuário.
- Conectado mas não aprovado: Se o usuário está conectado ao x.com mas não aprovou a aplicação que faz a chamada, uma requisição para compartilhar acesso com a aplicação será exibida. Após aceitar a requisição de autorização, o usuário será redirecionado para a URL de callback com um request token OAuth válido.
- Não conectado: Se o usuário não está conectado ao x.com, ele será solicitado a inserir suas credenciais e conceder acesso à aplicação para acessar suas informações na mesma tela. Uma vez conectado, o usuário será retornado à URL de callback com um request token OAuth válido.
callback_url receberá uma requisição contendo os parâmetros oauth_token e oauth_verifier. Sua aplicação deve verificar se o token corresponde ao request token recebido no passo 1.
Requisição do redirect do cliente (parâmetros de querystring quebrados):
Passo 3: Convertendo o request token em um access token
Para transformar o request token em um access token utilizável, sua aplicação deve fazer uma requisição ao endpoint POST oauth / access_token, contendo o valor deoauth_verifier obtido no passo 2. O request token também é passado na parte oauth_token do header, mas isso terá sido adicionado pelo processo de assinatura.
Exemplo de requisição (header Authorization quebrado):
oauth_token, oauth_token_secret. O token e o token secret devem ser armazenados e usados para futuras requisições autenticadas à X API. Para determinar a identidade do usuário, use GET account / verify_credentials.