Estoy tratando de enviar una solicitud con django para obtener un token de acceso de mi API usando OAuth2. Estoy ejecutando este código:
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)Cuando envío esta solicitud me sale este error:
{'error': 'unsupported_grant_type'}
Gracias por tu ayuda !
Si alguien está interesado, la solicitud correcta fue:
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)Si no desea codificar datos en URL, puede poner esto en su configuración.
OAUTH2_PROVIDER = { 'OAUTH2_BACKEND_CLASS': 'oauth2_provider.oauth2_backends.JSONOAuthLibCore', }Tuve el mismo problema y luego descubrí que el tipo de concesión debería ser una cadena.
payload = {'grant_type': 'refresh_token', 'refresh_token': refresh_token}