Python 令牌请求大小不同

Python Token request different size

我正在尝试使用令牌 (OAuth2) 为 API 创建身份验证代码。我遇到的问题是 API 给了我一个长度为 664 的令牌,这是无效的,当我尝试使用该令牌访问另一个 API 时,我收到错误 403。出于某些奇怪的原因,当我通过 Postman 拨打电话以获取该令牌时,它会给我一个更长的令牌,如果我在我的代码中使用邮递员给我的那个令牌,我可以毫无问题地访问 API ,似乎对于由于某种原因,我的 python 代码截断了令牌 (?)。

这是我的代码:

    def get_auth_token(url):
        """
        get an auth token
        """
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    
        data = {
        'grant_type': 'client_credentials',
        'username': "john.doe",
        'password': "yuppy_duppy.*",
        'audience': 'https://website-token.com',
        'scope' : '',
        'client_id' : 'foo-api-client',
        'client_secret': 'bEeuADqpubMoPos6eLYd6UEMx'
        }
    
        try:
            response  = requests.post(url, headers=headers, data=data)
            response.raise_for_status()
            token = response.json()['access_token']
            print(response.raw)
            return token
        except requests.exceptions.HTTPError as errh:
            print(errh)
        except requests.exceptions.ConnectionError as errc:
            print(errc)
        except requests.exceptions.Timeout as errt:
            print(errt)
        except requests.exceptions.RequestException as err:
            print(err)

token = get_auth_token('https://url-to-request-token.com/token')
head = {'Authorization': "Bearer " + token}

request_result = requests.get(URL_ZOOM, headers=head)
print(request_result.status_code)

状态码结果:

>> 403

我根据调用参数验证了 Postman 中的调用请求,它们完全没有区别。

为什么 Postman 给了我一个有效的令牌,而我对服务器的请求却给了我一个无效的令牌?

我实际上已经 运行 多次处理 Python 和 PHP 中的 API,并且在 Postman 中一切看起来都很好,然后在我们的开发服务器。

这是一个技巧,如果您还不知道,请单击此处:

然后select您选择的语言:

它实际上有两个用于 Python,具体取决于您是否要使用请求。从那里,您可以:

  1. 确保您的代码确实与正在运行的代码(代码段)相匹配 - 通过在您的编辑器中将它们并排放置并进行比较。

  2. 注释掉您的代码,使用代码段,看看它是否有效。如果它不起作用,那么它可能与您的局部变量或您在邮递员中手动设置但在生产中动态生成的其他内容有关。