Autenticando Http Requests com HTTP Basic Autentication no Shopify Flows

Como autenticar o conector Send HTTP Request do Shopify Flow com HTTP Basic Auth (header Authorization em Base64), com exemplo Twilio.

200 palavras1 min de leitura

Uma das coisas mais poderosas do Shopify Flow é a utilização a ação Send Http request, que permite fazer requisições e chamadas para qualquer serviço externo.

O que a documentação não diz nem dá exemplos, é como você pode se autenticar com serviços que usam HTTP Basic Authorization, uma forma de autorização que funciona passando um usuário e senha para o serviço HTTP afim de obter autenticação. Todavia, ela suporta isso nativamente. :)

Para tanto, basta encodar a string USUARIO:SENHA (onde USUARIO é seu login e SENHA é ... bom, a senha) em base64 e adicionar enviar isso via Header com o parâmetro Authorization e com o valor Base SEUTOKENEMBASE64.

Um exemplo é a utilização da API de envio de whatsapp do Twillio, que funciona basicamente enviando seu TWILIO_ACCOUNT_SID (o ID da sua conta) e seu respectivo token de acesso (TWILIO_AUTH_TOKEN). Nos exemplos do código, ele entrega o seguinda sample para uso via CURL:

curl -X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Para utilizar esse endpoint no conector HTTP Request, faça o encoding como citado acima (existem diversas ferramentas online que o fazem como o base64encode.org). Por exemplo, se seu SID da Twillio é AC87de077fae9f722201561f0ad04ea88az e seu token é b17df3b17bfb83ce38762f48ec640826, faça o encoding da string

AC87de077fae9f722201561f0ad04ea88az:b17df3b17bfb83ce38762f48ec640826

O resultado será

QUM4N2RlMDc3ZmFlOWY3MjIyMDE1NjFmMGFkMDRlYTg4YXo6YjE3ZGYzYjE3YmZiODNjZTM4NzYyZjQ4ZWM2NDA4MjY=

Depois, basta colocar no header da requisição como no print abaixo:

<img src="/assets/posts/2023-02-12-http-basic-shopify-flow/shopify-flow-basic-auth.png" alt="Header Authorization Basic no conector HTTP Request do Shopify Flow" style="max-width:100%;height:auto;" loading="lazy" decoding="async" />

E pronto: você agora pode usar seu endpoint autenticado. :)

Namastê!