Python HTTP驗證

驗證是確定請求是否來自具有使用系統所需特權的有效用戶的過程。在電腦網絡世界中,這是非常重要的要求,因為許多系統保持相互交互,並且需要適當的機制來確保這些程式之間僅發生有效的交互。

python模組名稱requests具有內置功能,可以調用服務網絡應用提供的各種API以及用戶憑據。這些憑據必須嵌入在調用程式中。如果API成功驗證,則發生有效登錄。

安裝請求

我們安裝了所需的名為請求的python模組,用於運行身份驗證程式。

pip install requests

向Github進行身份驗證

在下面,我們看到一種僅包含用戶名和密碼的簡單身份驗證機制。成功的回應表明有效的登錄。

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

驗證到Twitter

還可以運行一個程式來使用twitter的api,並通過使用以下代碼來成功登錄。使用請求模組中可用的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."
    }
  ]
}