使用Python请求进行身份验证
身份验证是指授予用户访问特定资源的权限。由于不能允许每个人访问每个 URL 的数据,因此主要需要身份验证。为了实现这种身份验证,通常通过 Authorization 标头或服务器定义的自定义标头提供身份验证数据。
例子 -
# import requests module
import requests
from requests.auth import HTTPBasicAuth
# Making a get request
response = requests.get('https://api.github.com / user, ',
auth = HTTPBasicAuth('user', 'pass'))
# print request object
print(response)
将“user”和“pass”替换为您的用户名和密码。它将验证请求并返回响应 200,否则将返回错误 403。
如果您的用户名或密码无效,它将返回错误:
认证类型
摘要式身份验证
另一种非常流行的 HTTP 身份验证形式是摘要式身份验证,Requests 也开箱即用地支持它:
>>> from requests.auth import HTTPDigestAuth
>>> url = 'https://httpbin.org/digest-auth/auth/user/pass'
>>> requests.get(url, auth=HTTPDigestAuth('user', 'pass'))
OAuth 1 身份验证
多个 Web API 的常见身份验证形式是 OAuth。 requests-oauthlib 库允许 Requests 用户轻松发出经过 OAuth 1 身份验证的请求:
>>> 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)
有关 OAuth 流程如何工作的更多信息,请参阅 OAuth 官方网站。有关 requests-oauthlib 的示例和文档,请参阅 GitHub 上的 requests_oauthlib 存储库
OAuth 2 和 OpenID Connect 身份验证
requests-oauthlib 库还处理 OAuth 2,这是支持 OpenID Connect 的身份验证机制。有关各种 OAuth 2 凭证管理流程的详细信息,请参阅 requests-oauthlib OAuth2 文档:
- 网络应用程序流程
- 移动应用流程
- 旧版应用程序流程
- 后端应用流程
其他认证
Requests 旨在允许轻松快速地插入其他形式的身份验证。开源社区的成员经常为更复杂或不太常用的身份验证形式编写身份验证处理程序。 Requests 组织下汇集了一些最优秀的人才,包括:
- Kerberos
- NTLM。
如果您想使用任何这些形式的身份验证,请直接访问他们的 GitHub 页面并按照说明进行操作。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。