Python - autenticação HTTP

A autenticação é o processo de determinar se a solicitação veio de um usuário válido que possui os privilégios necessários para usar o sistema. No mundo das redes de computadores, esse é um requisito muito vital, pois muitos sistemas continuam interagindo entre si e o mecanismo adequado precisa garantir que apenas interações válidas aconteçam entre esses programas.

Os nomes dos módulos python requeststem um recurso integrado para chamar várias APIs fornecidas pelos aplicativos da web em serviço junto com as credenciais do usuário. Essas credenciais devem ser incorporadas ao programa de chamada. Se as APIs verificarem com êxito, um login válido ocorre.

Instalação de solicitações

Instalamos o módulo Python necessário chamado solicitações para executar o programa de autenticação.

pip install requests

Autenticação no Github

Abaixo, vemos um mecanismo de autenticação simples envolvendo apenas o nome de usuário e a senha. Uma resposta bem-sucedida indica um login válido.

import requests 
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r

Quando executamos o programa acima, obtemos a seguinte saída -

 
      

Autenticação no Twitter

Também podemos executar um programa para usar a API do Twitter e fazer um login bem-sucedido usando o código a seguir. Usamos o método OAuth1 disponível no módulo de solicitações para processar os parâmetros exigidos pela API do Twitter. Como podemos ver, o módulo de solicitações é capaz de lidar com mecanismos de autenticação mais complexos envolvendo chaves e tokens, em vez de apenas o mecanismo de nome de usuário e senha.

import requests
from requests_oauthlib import OAuth1
url = 'https://api.twitter.com/1.1/account/verify_credentials.json'
auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET',
              'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET')
requests.get(url, auth=auth)

Quando executamos o programa acima, obtemos a seguinte saída -

{
  "errors": [
    {
      "code": 215,
      "message": "Bad Authentication data."
    }
  ]
}

Mas, usando os valores adequados para os parâmetros OAuth1, você obtém uma resposta bem-sucedida.