我尝试使用django发送请求,以便使用OAuth2从我的api获取access_token。我正在执行此代码:
data = {'username': 'admin', 'password': '123123', 'grant_type':
'password','client_id': 'xxx','client_secret': 'xxx'}
headers = {'content-type': 'application/x-www-form-urlencoded'}
r = requests.post(url, data=data, headers=headers)
当我发送此请求时,我收到此错误:
{'错误':' unsupported_grant_type'}
感谢您的帮助!
答案 0 :(得分:4)
如果有人有兴趣,正确的请求是:
payload = "grant_type=password&client_secret=xxx&client_id=xxx&username=username&password=password"
headers = {
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
}
response = requests.request("POST", url, data=payload, headers=headers)
答案 1 :(得分:0)
如果您不想在url中编码数据,则可以将其放入设置中。
OAUTH2_PROVIDER = {
'OAUTH2_BACKEND_CLASS': 'oauth2_provider.oauth2_backends.JSONOAuthLibCore',
}
答案 2 :(得分:0)
我遇到了同样的问题,后来我发现授权类型应该是字符串。
payload = {'grant_type': 'refresh_token', 'refresh_token': refresh_token}