Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何生成授权请求头?_Python_Api_Flask_Header_Postman - Fatal编程技术网

Python 如何生成授权请求头?

Python 如何生成授权请求头?,python,api,flask,header,postman,Python,Api,Flask,Header,Postman,如何生成授权请求标头 我已经读过,并且在base 64中使用用户名和密码生成了一个,但是当我在请求头上传递它时,它就不起作用了(“error”:“invalid_client) 使用邮递员发出请求,一切正常: POST /oauth/token content-type: application/x-www-form-urlencoded authorization: Basic M1g4Vlk2QllHOFFJTDA3amt1cWpsUnNKOmhoWkNlSEg0SzFuVVJ2VTZmNU

如何生成授权请求标头

我已经读过,并且在base 64中使用用户名和密码生成了一个,但是当我在请求头上传递它时,它就不起作用了(
“error”:“invalid_client

使用邮递员发出请求,一切正常:

POST /oauth/token
content-type: application/x-www-form-urlencoded
authorization: Basic M1g4Vlk2QllHOFFJTDA3amt1cWpsUnNKOmhoWkNlSEg0SzFuVVJ2VTZmNUs5MmFiTlNSN3h3ZlBCYVN6OXI1WG1pcDNZOGJCbA==
user-agent: PostmanRuntime/7.1.5
accept: */*
host: 127.0.0.1:5000
accept-encoding: gzip, deflate
content-length: 97
ObsCharStyle:api使用密码授予类型并返回承载令牌


Obs²:当我使用用户名和密码(
base64.b64encode(b')
)生成授权请求标头时,输出长度为20个字符

如何用python发送此post请求

为什么不使用
请求
?您甚至不需要关心它:

import requests

requests.post(url, data=data, auth=(username, passwd))

在Flask Authlib中,您可以定义三种类型的Auth方法:client_secret_basic、client_secret_post和none,这些类型指示开关参数以及您需要如何在头中传递它们。这是对规范的参考。

b'basic'+base64.b64encode(b'username:pass')
?不起作用,我现在就是这样做的!
请求。发布('http://127.0.0.1:5000/oauth/token,data=payload,header=header).json()
,因为除了用户名和密码之外,我还需要传递客户id、客户机密、范围和授权类型。是的,我确实尝试了
auth
,但我收到了相同的错误。使用
response.request
查看发送的请求并与postman中的工作请求进行比较。也许您可以列出
res.request.header
res.request.body
或您的问题中有用的东西来帮助我们和您自己。不(在应用程序中使用
b64encode(b'username:password')
)和(使用邮递员的
'authorization':'Basic…'
)我不知道为什么,但在Base64中传递客户端id和客户端密码是有效的,我知道Http协议指定传递用户名和密码…我研究了一下,但什么也找不到。感谢支持,我很感激!