身份验证
本文档讨论了对请求使用各种身份验证。
许多web服务需要身份验证,并且有许多不同的类型。下面,我们概述了请求中可用的各种形式的身份验证从简单到复杂。
基本身份验证
许多需要身份验证的web服务都接受HTTP Basic Auth。这是最简单的类型,Requests直接支持它。
使用HTTP Basic Auth发出请求非常简单:
>>>从 请求授权 进口 HTTP基本认证
>>>基本的 = HTTP基本认证(“用户”, “通过”)
>>>请求.得到('https://httpbin.org/basic-auth/user/pass', 授权=基本的)
<回复[200]>
事实上,HTTP Basic Auth非常常见,因此Requests提供了一个方便的速记用于使用:
>>>请求.得到('https://httpbin.org/basic-auth/user/pass', 授权=(“用户”, “通过”))
<回复[200]>
在这样的元组中提供凭据与HTTP基本认证
上面的例子。
netrc身份验证
如果没有使用授权
参数,请求将尝试从用户的netrc文件。netrc文件覆盖原始HTTP身份验证标头设置标题=.
如果找到主机名的凭据,则使用HTTP Basic发送请求授权。
摘要式身份验证
另一种非常流行的HTTP身份验证形式是摘要式身份验证,和Requests也支持开箱即用:
>>>从 请求授权 进口 HTTPDigest授权
>>>网址 = 'https://httpbin.org/digest-auth/auth/user/pass'
>>>请求.得到(网址, 授权=HTTPDigest授权(“用户”, “通过”))
<回复[200]>
OAuth 1身份验证
OAuth是几种web API的常见身份验证形式。这个请求-oauthlib
库允许Requests用户轻松发出OAuth 1身份验证请求:
>>>进口 请求
>>>从 请求_oauthlib 进口 OAuth1(OAuth1)
>>>网址 = 'https://api.twitter.com/1.1/account/verify_credentials.json'
>>>授权 = OAuth1(OAuth1)(“您的APP_KEY”, '您的应用程序设置',
... '用户_授权_确定', 'USER_OAUTH_TOKEN_SECRET')
>>>请求.得到(网址, 授权=授权)
<回复[200]>
有关OAuth流如何工作的更多信息,请参阅官方OAuth(OAuth)网站。有关oauthlib请求的示例和文档,请参阅请求_oauthlibGitHub上的存储库
其他身份验证
请求的设计允许其他形式的身份验证快速插入。开源社区的成员经常写身份验证处理程序,用于更复杂或不太常用的形式身份验证。在请求组织包括:
如果您想使用这些形式中的任何一种身份验证,请直接访问它们GitHub页面并按照说明进行操作。