【问题标题】:How to get token from API with Python?如何使用 Python 从 API 获取令牌?
【发布时间】:2021-06-12 15:31:22
【问题描述】:

我需要获取令牌才能连接到 API。用python试过这个:

import requests, base64
url = 'https://api-b2b.alzura.com/common/login'
token_req = base64.b64encode(b'name:passwd').decode()
headers = {'Authorization': str(token_req)}
req = requests.post(url, headers=headers)
print(req)

并得到 ,但没有令牌。 :D 我已经阅读了这个关于 python 的post 部分,但它对我不起作用。

看来我做错了。我应该做什么/学习/阅读?

感谢您的宝贵时间!

更新 它应该是一个基本的身份验证,看起来不需要任何用户机密。这是开发人员的小手册:

获取登录令牌和过期日期。返回 X-AUTH-TOKEN,即 其余端点的身份验证所需的。验证 对于此端点是基本身份验证。对于身份验证,一个 格式为“Alzura ID:Password”的身份验证标头必须是 作为 base64 编码的字符串传输。

【问题讨论】:

  • 这里是link获取token的描述。如果有帮助的话。

标签: python python-3.x api python-requests token


【解决方案1】:

首先注意必须从服务器获取令牌!出于安全考虑,进行某些 API 调用需要令牌。通常至少有两种类型的令牌:

  • 访问令牌:您使用它来进行 API 调用(如上面的授权标头中所示)。但此令牌通常会在短时间内过期。
  • 刷新令牌:使用此令牌在访问令牌过期后刷新它。

除了请求之外,您还应该使用 requests-oauthlib。
https://pypi.org/project/requests-oauthlib/
但首先,请阅读可用的令牌获取工作流程:
https://requests-oauthlib.readthedocs.io/en/latest/oauth2_workflow.html#available-workflows
并选择适合您目的的正确工作流程。 (最常用的是 Web App 工作流)
然后,在您的代码中实施工作流以获取令牌。获得有效令牌后,您可以使用它进行各种 API 调用。

附带说明:如果需要,请务必刷新令牌。

【讨论】:

  • client_secret 和 client_key 必须由 API 所有者提供,我理解正确吗?该 API 可能没有客户端密钥和客户端密钥?
  • 您是对的:客户端 ID 和密码必须由 API 所有者提供。
  • @neznajut 一些非关键 API 端点不需要身份验证,因此既不需要客户端 ID,也不需要秘密。但如今,这种情况极不可能发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多