如何使用python使用基本身份验证获取Bearer令牌?

时间:2019-04-22 12:39:47

标签: python locust

我想使用基本授权获得授权令牌。我使用用户名和密码发送了发布请求,但要获取令牌,请求中必须包含原始数据grant_type=client_credentials&scope=Dashboard的正文数据。但我无法使用python发送发布请求中的grant_type=client_credentials&scope=Dashboard正文数据。

 @task(1)
    def login(self):
        self.client.post("/OAuth/Token/", {'Username':'abc', 'Password':'12345'})

2 个答案:

答案 0 :(得分:0)

请尝试以下操作:

在URL中,添加Grant类型和范围,如下所示:

/OAuth/Token?grant_type=client_credentials&scope=Dashboard

它看起来像这样

self.client.post("/OAuth/Token?grant_type=client_credentials&scope=Dashboard", {'Username':'abc', 'Password':'12345'})

答案 1 :(得分:0)

self.client.post()返回一个Response对象。您可以在https://requests.readthedocs.io/en/latest/api/#requests.Response

上看到该api。

要读出响应中的内容,您可以尝试类似

@task(1)
def login(self):
    res = self.client.post("/OAuth/Token/", {'Username':'abc', 'Password':'12345'})
    token = res.json()['token']

这尝试将Response主体作为json处理并提取令牌字段。如果这不起作用,请提供您在响应中看到的详细信息。