Python - HTTP 認證



認證是確定請求是否來自具有使用系統所需許可權的有效使用者的過程。在計算機網路領域,這是一個非常重要的要求,因為許多系統彼此互動,並且需要適當的機制來確保只有這些程式之間發生有效的互動。

Python 模組名稱 **requests** 具有內建功能,可以呼叫服務 Web 應用提供的各種 API 以及使用者憑據。這些憑據必須嵌入到呼叫程式中。如果 API 成功驗證了它,則會發生有效登入。

安裝 Requests

我們安裝名為 requests 的所需 Python 模組來執行認證程式。

pip install requests

認證到 Github

下面我們看到一個簡單的認證機制,只涉及使用者名稱和密碼。成功的響應表示有效登入。

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

當我們執行上述程式時,我們得到以下輸出:


認證到 Twitter

我們還可以執行一個程式來使用 Twitter 的 api 並透過使用以下程式碼成功登入。我們使用 requests 模組中可用的 OAuth1 方法來處理 Twitter API 所需的引數。正如我們所看到的,requests 模組能夠處理更復雜的認證機制,包括金鑰和令牌,而不僅僅是使用者名稱和密碼機制。

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)

當我們執行上述程式時,我們得到以下輸出:

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

但是使用 OAuth1 引數的正確值,您將獲得成功的響應。

廣告