【发布时间】:2022-05-11 22:33:39
【问题描述】:
如何从 Auth0 帐户获取所有用户的列表,并使用 PYTHON 语言获取总数?
【问题讨论】:
如何从 Auth0 帐户获取所有用户的列表,并使用 PYTHON 语言获取总数?
【问题讨论】:
Auth0 允许使用 API 令牌来获取数据。要获取包括总数在内的用户详细信息,您将需要 API 客户端密钥和 id。
Auth0 document to get the token
我写了一篇文章here
要使用的代码...
import http.client
import json
client_id = 'xxxxxxxxxxxxxxxxxxxx'
client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
business_name = 'xxxxxxxxx'
# GET THE ACCESS TOKEN using the client_id and client_secret
conn = http.client.HTTPSConnection(business_name+".eu.auth0.com")
payload = "{\"client_id\":\""+client_id+"\",\"client_secret\":\""+client_secret+"\",\"audience\":\"https://"+business_name+".eu.auth0.com/api/v2/\",\"grant_type\":\"client_credentials\"}"
headers = { 'content-type': "application/json" }
conn.request("POST", "/oauth/token", payload, headers)
res = conn.getresponse()
data = res.read()
tokendetails_json = data.decode('utf8').replace("'", '"')
# Load the JSON to a Python list & dump it back out as formatted JSON
tokendetails = json.loads(tokendetails_json)
#NOW GET THE USERS AND TOTAL
conn = http.client.HTTPSConnection(business_name+".eu.auth0.com")
payload = "{\"client_id\":\""+client_id+"\",\"client_secret\":\""+client_secret+"\",\"audience\":\"https://"+business_name+".eu.auth0.com/api/v2/\",\"grant_type\":\"client_credentials\"}"
headers = { 'content-type': "application/json","Authorization": "Bearer "+tokendetails['access_token'] }
conn.request("GET", "/api/v2/users?include_totals=true", payload, headers)
res = conn.getresponse()
data = res.read()
result_data_json = data.decode('utf8').replace("'", '"')
# Load the JSON to a Python list & dump it back out as formatted JSON
result_data = json.loads(result_data_json)
print(result_data) # Json list of all users
print(result_data['total']) # Just the count of total users
【讨论】:
得到sydadder 代码在启用测试应用程序后工作,然后在此处授予读取权限: Auth0 仪表板/应用程序/API/机器对机器应用程序/Auth0 管理 API(测试应用程序)(通过单击向下箭头展开)
没有调整我得到的权限:
{'statusCode': 401, 'error': 'Unauthorized', 'message': 'Invalid token', 'attributes': {'error': 'Invalid token'}}
另外将“eu.auth0.com”更改为相应的 Auth0 区域。
【讨论】: