如何在python Flask的标头中传递生成的令牌

时间:2021-01-11 12:24:43

标签: python flask

我有一个登录 API,它会生成一个令牌,我想将该令牌作为请求,我想使用下面的 Python 脚本调用另一个 API,请您帮我获取。 下面是使用 post 方法的登录请求我正在硬编码凭据我想在成功登录后使用这些凭据登录它会生成一个令牌。使用该令牌想要调用另一个称为潜在客户的 API

import requests

url = "http://website/login"
payload="{\"username\": \"abc@test.com\", \"password\": \"password\"}\r\n"
headers = {
  'Content-Type': 'application/json'
}
token1 = requests.request("POST", url, headers=headers, data=payload)
p1 = "http://website/prospect"
headers = {
  # 'Authorization': token1,
  'Content-Type': 'application/json'
}
api_call_response = requests.get(p1, headers={'Authorization': token1})
print(api_call_response.text)

在第一次发布请求时,我能够在第二次调用时生成令牌 我想获取令牌并呼叫潜在客户 我无法调用另一个 API,您能帮我获取那个吗

1 个答案:

答案 0 :(得分:1)

requests.request 返回一个响应对象。您可以通过以下方式获取响应文本:

response = requests.request("POST", url, headers=headers, data=payload)
token1 = response.text
print(token1)

假设响应是这样的:

{"token": "f8DigrXubwYQj1KbUS0M9mOTNlHUKG"}

那么你可以这样使用它:

respons_object = response.json()
p1 = "http://website/prospect"
api_call_response = requests.get(p1, headers={'Authorization': respons_object['token']})

Requests User Guide 中,您可以找到很好的提示和提示。

除此之外,还有不同类型的令牌。 Bearer、JWT 等,您可能需要将令牌类型添加到您的标头中。像这样:

headers={'Authorization': 'Bearer {}'.format(respons_object['token'])}