使用python中的auth0 / oauth / token端点

时间:2018-01-27 14:24:12

标签: python python-requests auth0

我试图找出Auth0的工作原理。到目前为止,我并不幸运。我想要实现的是简单的:POST到oauth / token端点并接收一个令牌作为回报。卷曲这没问题。我可以卷曲 - 请求POST [...]并收到令牌就好了。当我尝试使用python和pythons请求模块执行此操作时,我收到一条错误消息,指出我未获得授权。数据完全相同,我仔细检查。这是我的python代码:

import json, requests

endpoint = 'https://mydomain.auth0.com/oauth/token'
data = {
    'grant_type': 'password',
    'username': 'myuser',
    'password': 'mypassword',
    'audience': '',
    'scope': 'read:sample',
    'client_id': 'myclientid',
    'client_secret': 'myclientsecret'
},
headers = {'content-type': 'application/json'}

response = requests.post(url=endpoint, data=json.dumps(data), headers=headers)
print("STATUS: ", response.status_code)
print("Response: ", response.json())

工作卷曲请求:

curl --request POST \\
  --url 'https://mydomain.auth0.com/oauth/token' \\
  --header 'content-type: application/json' \\
  --data '{"grant_type":"password","username": "myuser","password": "mypassword","audience": "", "scope": "read:sample", "client_id": "myclientid", "client_secret": "myclientsecret"}'

我还尝试将我的python代码中的用户代理设置为" curl / 7.51.0",但这也不起作用:D

我对任何指针感到满意!

编辑:

我可耻地承认我之前没有使用相同的用户名。尽管我无法用python代码授权自己,但这并没有改变这个事实。 @ cricket_007建议的SDK工作正常。我发现这有点奇怪但很好。

1 个答案:

答案 0 :(得分:1)

我认为这实际上是您使用requests.post()

时的一个简单错误

url 不是关键字参数:

response = requests.post(endpoint, data=json.dumps(data), headers=headers)

应该在这里工作......