Python - HTTP Kimlik Doğrulaması
Kimlik doğrulama, talebin sistemi kullanmak için gerekli ayrıcalıklara sahip geçerli bir kullanıcıdan gelip gelmediğini belirleme sürecidir. Bilgisayar ağı dünyasında, bu çok hayati bir gerekliliktir, çünkü birçok sistem birbiriyle etkileşime girmeye devam eder ve uygun mekanizmanın bu programlar arasında yalnızca geçerli etkileşimlerin olmasını sağlaması gerekir.
Python modül adları requestskullanıcı kimlik bilgileriyle birlikte hizmet veren web uygulamaları tarafından sağlanan çeşitli API'leri çağırmak için yerleşik bir özelliğe sahiptir. Bu kimlik bilgilerinin arayan programa yerleştirilmesi gerekir. API'ler bunu başarıyla doğrularsa, geçerli bir oturum açma işlemi gerçekleşir.
Yükleme İstekleri
Kimlik doğrulama programını çalıştırmak için gerekli python modülü adlı istekleri kuruyoruz.
pip install requests
Github'da kimlik doğrulama
Aşağıda sadece kullanıcı adı ve şifreyi içeren basit bir kimlik doğrulama mekanizması görüyoruz. Başarılı bir yanıt, geçerli giriş olduğunu gösterir.
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r
Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -
Twitter'da kimlik doğrulama
Twitter'ın api'sini kullanmak için bir program çalıştırabilir ve aşağıdaki kodu kullanarak başarılı bir giriş yapabiliriz. Twitter API'nin gerektirdiği parametreleri işlemek için istekler modülünde bulunan OAuth1 yöntemini kullanıyoruz. Gördüğümüz gibi, istek modülü, yalnızca kullanıcı adı ve parola mekanizmasından ziyade anahtarlar ve belirteçleri içeren daha karmaşık kimlik doğrulama mekanizmasını yönetebilir.
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)
Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -
{
"errors": [
{
"code": 215,
"message": "Bad Authentication data."
}
]
}
Ancak OAuth1 parametreleri için uygun değerleri kullanarak başarılı bir yanıt alırsınız.