Django OAuth2 unsupported_grant_type

时间:2017-04-04 08:12:54

标签: django oauth-2.0

我尝试使用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'}

感谢您的帮助!

3 个答案:

答案 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}