- Python-网络编程
 - Python-网络简介
 - Python-网络环境
 - Python - 互联网协议
 - Python-IP 地址
 - Python-DNS 查找
 - Python-路由
 - Python - HTTP 请求
 - Python-HTTP 响应
 - Python - HTTP 标头
 - Python - 自定义 HTTP 请求
 - Python - 请求状态代码
 - Python-HTTP 身份验证
 - Python - HTTP 数据下载
 - Python - 连接重用
 - Python - 网络接口
 - Python-套接字编程
 - Python-HTTP 客户端
 - Python-HTTP 服务器
 - Python - 构建 URL
 - Python - Web表单提交
 - Python - 数据库和 SQL
 - Python-远程登录
 - Python - 电子邮件消息
 - Python-SMTP
 - Python-POP3
 - Python-IMAP
 - Python-SSH
 - Python-FTP
 - Python-SFTP
 - Python - Web 服务器
 - Python-上传数据
 - Python-代理服务器
 - Python - 目录列表
 - Python-远程过程调用
 - Python - RPC JSON 服务器
 - Python - 谷歌地图
 - Python - RSS 源
 
Python-HTTP 身份验证
身份验证是确定请求是否来自具有使用系统所需权限的有效用户的过程。在计算机网络领域,这是一个非常重要的要求,因为许多系统不断相互交互,并且需要适当的机制来确保这些程序之间只发生有效的交互。
python 模块名称请求具有内置功能,可以调用服务 Web 应用程序提供的各种 API 以及用户凭据。这些凭证必须嵌入到调用程序中。如果 API 验证成功,则登录有效。
安装请求
我们安装运行身份验证程序所需的名为 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 所需的参数。正如我们所看到的,请求模块能够处理更复杂的身份验证机制,涉及密钥和令牌,而不仅仅是用户名和密码机制。
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 参数的正确值,您将获得成功的响应。