Python 如何生成授权请求头?
如何生成授权请求标头 我已经读过,并且在base 64中使用用户名和密码生成了一个,但是当我在请求头上传递它时,它就不起作用了(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
“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协议指定传递用户名和密码…我研究了一下,但什么也找不到。感谢支持,我很感激!