Como conectar-se a endpoints usando OAuth 2.0 Authorization Code Flow with PKCE
Como conectar-se aos endpoints
Para autenticar seus usuários, seu App precisará implementar um fluxo de autorização. Esse fluxo permite direcionar seus usuários para uma caixa de diálogo de autorização no X. A partir daí, a experiência principal do X exibirá a caixa de diálogo de autorização e cuidará da autorização em nome do seu App. Seus usuários poderão autorizar seu App ou recusar a permissão. Após o usuário fazer sua escolha, o X o redirecionará para o seu App, onde você pode trocar o authorization code por um access token (se o usuário autorizou seu App) ou tratar a recusa (se o usuário não autorizou seu App).Trabalhando com confidential clients
Se você estiver trabalhando com confidential clients, precisará usar um esquema de basic authentication para gerar um header de autorização com codificação base64 ao fazer solicitações aos endpoints de token. Ouserid e o password são separados por um único caractere de dois-pontos (”:”) dentro de uma string codificada em base64 nas credenciais.
Um exemplo se pareceria com isto:
-header 'Authorization: Basic V1ROclFTMTRiVWhwTWw4M2FVNWFkVGQyTldNNk1UcGphUTotUm9LeDN4NThKQThTbTlKSXQyZm1BanEzcTVHWC1icVozdmpKeFNlR3NkbUd0WEViUA=='
Se o user agent quiser enviar o Client ID “Aladdin” e a senha “open sesame”, ele usaria o seguinte campo de header:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Para criar o header de basic authorization, você precisará fazer a codificação base64 do seu Client ID e Client Secret, que podem ser obtidos na página “Keys and Tokens” do seu App dentro do Developer Console.
Passos para conectar-se usando OAuth 2.0
Passo 1: construa uma Authorize URL Seu App precisará construir uma authorize URL para o X, indicando os escopos que seu App precisa autorizar. Por exemplo, se seu App precisa consultar Tweets, usuários e gerenciar follows, ele deve solicitar os seguintes escopos:tweet.read%20users.read%20follows.read%20follows.write
A URL também conterá os parâmetros code_challenge e state, além dos outros parâmetros obrigatórios. Em produção, você deve usar uma string aleatória para o code_challenge.
Passo 2: GET oauth2/authorize
Faça o usuário se autenticar e envie à aplicação um authorization code. Se você habilitou OAuth 2.0 para seu App, pode encontrar seu Client ID na página “Keys and Tokens” do seu App.
Um exemplo de URL para redirecionar o usuário ficaria assim:
offline.access for solicitado). Você pode fazer uma solicitação POST ao seguinte endpoint:
Content-Type de application/x-www-form-urlencoded via header. Além disso, você deve incluir na sua solicitação: code, grant_type, client_id e redirect_uri, e o code_verifier.
Aqui está um exemplo de solicitação de token para um public client:
Content-Type de application/x-www-form-urlencoded via header. Além disso, também precisará passar seu refresh_token, definir seu grant_type como refresh_token e informar seu client_id.
Esta solicitação funciona para public clients:
Content-Type de application/x-www-form-urlencoded via header, seu token e seu client_id.
Em alguns casos, um usuário pode querer revogar o acesso concedido a um App; ele pode revogar o acesso visitando a página de connected Apps.