
- 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 - Telnet
- Python - 邮件消息
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - Google 地图
- Python - RSS Feed
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 参数的正确值,您将获得成功的响应。
广告