Requests的OAuthlib认证支持。
项目描述
本项目为Requests库提供了一流的OAuth库支持。
OAuth 1工作流程
OAuth 1可能看起来过于复杂,并且确实有一些怪癖。幸运的是,requests_oauthlib隐藏了这些怪癖的大部分,让您能专注于手头的任务。
使用requests_oauthlib访问受保护资源就像
>>> from requests_oauthlib import OAuth1Session
>>> twitter = OAuth1Session('client_key',
client_secret='client_secret',
resource_owner_key='resource_owner_key',
resource_owner_secret='resource_owner_secret')
>>> url = 'https://api.twitter.com/1/account/settings.json'
>>> r = twitter.get(url)
在访问资源之前,您需要从您的提供商(例如Twitter)处获取一些凭证,并获得您想要为其检索资源的用户的授权。您可以在RTD上的完整OAuth 1工作流程指南中了解所有这些信息。
OAuth 2工作流程
OAuth 2通常比OAuth 1更简单,但具有更多口味。最常见的是授权码授予,也称为WebApplication流程。
在获得访问令牌后获取受保护的资源可能非常简单。然而,在访问资源之前,您需要从您的提供商(例如Google)处获取一些凭证,并获得您想要为其检索资源的用户的授权。您可以在RTD上的完整OAuth 2工作流程指南中了解所有这些信息。
安装
要安装requests和requests_oauthlib,您可以使用pip
pip install requests requests-oauthlib
历史记录
v2.0.0(2024年3月22日)
完整的更改列表在[github](https://github.com/requests/requests-oauthlib/milestone/4?closed=1)中。
新增内容与更改
v1.4.0(2024年2月27日)
版本2.0.0最初以1.4.0发布,最终被撤回。
v1.3.1(2022年1月21日)
添加对OAuth相互TLS(draft-ietf-oauth-mtls)的初始支持
删除过时的LinkedIn合规性修复
添加eBay合规性修复
添加Spotify OAuth 2教程
添加对python 3.8、3.9的支持
修复LinkedIn合规性修复
修复ReadTheDocs文档和sphinx错误
将流水线移至GitHub Actions
v1.3.0(2019年11月6日)
Instagram合规性修复
向OAuth2Session上的fetch_token()方法添加force_querystring参数
v1.2.0(2019年1月14日)
此项目现在依赖于OAuthlib 3.0.0及以上版本。它不支持OAuthlib 3.0.0之前的版本。
更新OAuth2测试以使用OAuth2Session实例的‘sess’代替‘auth’,因为OAuth2Session对象和方法接受一个‘auth’参数,通常是一个requests.auth.HTTPBasicAuth实例
OAuth2Session.fetch_token以前试图错误地猜测如何以及在哪里提供“客户端”和“用户”凭证。这与一些OAuth服务器不兼容,并且与oauthlib的破坏性更改不兼容,这些更改旨在正确提供“client_id”。较旧的实施方式在Legacy客户端上没有用户名和密码时也没有引发正确的异常。
避免为OAuth2Session自动进行netrc身份验证。
v1.1.0(2019年1月9日)
调整了对oauthlib依赖项的版本指定器:此项目尚未与oauthlib 3.0.0兼容。
删除对nose的依赖。
对代码进行一些小修改,以使其更易于阅读/维护。
v1.0.0(2018年6月4日)
已移除对Python 2.6和Python 3.3的支持。 此项目现在支持Python 2.7以及Python 3.4及以上版本。
在文档中添加了几个示例。
添加了plentymarkets合规性修复。
向OAuth1Session添加了token属性,以匹配OAuth2Session上的相应token属性。
v0.8.0(2017年2月14日)
添加了Fitbit合规性修复。
修复了在访问令牌请求的响应体中存在换行符时,尝试提取令牌会引发错误的问题。
修复了v0.7.0中引入的问题,其中用户在传递auth到多个方法时会遇到与由client_id和client_secret派生的身份验证的冲突。现在优先使用用户提供的auth参数。
v0.7.0(2016年9月22日)
允许OAuth2Session.request接受用于自动刷新令牌目的的client_id和client_secret参数,这可能是必需的。
v0.6.2(2016年7月12日)
如果提供,则使用client_id和client_secret作为授权头。
通过设置auth=False显式跳过授权头。
在刷新令牌时传递proxies关键字参数。
其他清理工作。
v0.6.1(2016年2月19日)
修复了在没有用户名和密码时发送授权头时出现的错误。
在获取新的令牌之前确保清除会话令牌。
对Slack合规性修复进行了一些改进。
避免令牌刷新周围的时序问题。
在调用fetch_request_token和fetch_access_token时允许传递任意参数。
v0.6.0(2015年12月14日)
添加了Slack的合规性修复。
添加了Mailchimp的合规性修复。
TokenRequestDenied异常现在携带整个响应,而不仅仅是状态码。
在自动刷新令牌时传递关键字参数。
在头部发送授权,而不仅仅是主体,以提高兼容性。
OAuth2会话客户端值现在有更多的获取器和设置器。
在刷新令牌时允许发送自定义头部,并设置一些默认值。
v0.5.0(2015年5月4日)
修复了在OAuth2流程中引发TypeError而不是TokenMissing错误。
在OAuth2流程中的4XX和5XX响应上引发requests异常。
在初始化没有完整客户端信息的OAuth2Session类时避免AttributeError。
v0.4.2(2014年10月16日)
OAuth1Session和OAuth2Session上添加了新的authorized属性,这使得您能够轻松地确定会话是否已经通过OAuth令牌授权。
OAuth1Session添加了新的TokenMissing和VerifierMissing异常类:这将使捕获和识别这些异常变得更容易。
v0.4.1(2014年6月6日)
为使用OAuth1 RSA-SHA1签名方法的人添加了新的安装目标[rsa]。
修复了OAuth2中的错误,其中提供的state参数未在auth url中使用。
可以通过设置环境变量OAUTHLIB_INSECURE_TRANSPORT来禁用OAuth2的HTTPS检查。
OAuth1现在在重定向时重新授权。
当响应体编码不正确或请求被拒绝时,OAuth1令牌获取现在会引发详细的错误消息。
添加了对自定义OAuth1客户端的支持。
Sina Weibo的OAuth2合规性修复。
对facebook合规性修复进行了多次修复。
合规性修复现在在Python 3中正确重新编码主体为字节。
现在日志记录在 requests_oauthlib 命名空间下正确完成,而不是在 oauthlib 命名空间上附加。
为 OAuth1 认证和会话引入了日志记录。
v0.4.0(2013年9月29日)
OAuth1Session 方法仅返回 Unicode 字符串。 #55。
将 requests_oauthlib.core 重命名为 requests_oauthlib.oauth1_auth 以保持一致性。 #79。
向 OAuth2Session 添加了 Facebook 兼容修复和 access_token_response 钩子。 #63。
添加了 LinkedIn 兼容修复。
添加了 refresh_token_response 兼容钩子,在解析刷新令牌之前调用。
正确限制兼容钩子,只运行一次!
仅在未提供内容类型时才应进行内容类型猜测
OAuth1 现在更新 r.headers 而不是用不区分大小写的字典替换它
移除 OAuth1Session 中 Response.content 的最后使用。 #44。
现在可以在 OAuth2Session.authorize_url 中提供状态参数
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
哈希值 for requests-oauthlib-2.0.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 |
|
MD5 | 68df2f3e274ac34fb2c5f32b15374156 |
|
BLAKE2b-256 | 3b5d63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24 |