You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从Auth0获取全部用户列表及总用户数量

Python从Auth0获取全量用户列表及统计总数的实现方法

前置准备

  • 登录Auth0管理后台,创建一个Machine-to-Machine应用,为该应用授予Management API的read:users权限
  • 记录该应用的DOMAIN、CLIENT_ID、CLIENT_SECRET三个参数,后续代码需要用到

实现代码

Auth0的用户查询接口默认开启分页,单页最多返回100条数据,因此代码需要加入分页逻辑才能拉取到所有用户,以下提供两种实现方式:

方式1:使用官方SDK实现

首先安装依赖:
pip install auth0-python

完整代码:

from auth0.authentication import GetToken
from auth0.management import Auth0

# 替换为自身Auth0租户的对应参数
AUTH0_DOMAIN = "你的租户域名.auth0.com"
CLIENT_ID = "你的M2M应用Client ID"
CLIENT_SECRET = "你的M2M应用Client Secret"

# 获取管理API访问令牌
get_token = GetToken(AUTH0_DOMAIN, CLIENT_ID, client_secret=CLIENT_SECRET)
token = get_token.client_credentials(f"https://{AUTH0_DOMAIN}/api/v2/")
access_token = token["access_token"]

# 初始化管理客户端
auth0 = Auth0(AUTH0_DOMAIN, access_token)

all_users = []
page = 0
per_page = 100  # 接口允许的单页最大返回条数

while True:
    # 分页拉取用户
    users_page = auth0.users.list(page=page, per_page=per_page)
    current_page_users = users_page["users"]
    if not current_page_users:
        break
    all_users.extend(current_page_users)
    page += 1

# 统计用户总数
total_user_count = len(all_users)

print(f"用户总数量:{total_user_count}")
print("所有用户列表:", all_users)

方式2:使用原生requests实现

无需安装额外SDK,直接调用接口:

import requests

AUTH0_DOMAIN = "你的租户域名.auth0.com"
CLIENT_ID = "你的M2M应用Client ID"
CLIENT_SECRET = "你的M2M应用Client Secret"

# 获取访问令牌
token_url = f"https://{AUTH0_DOMAIN}/oauth/token"
token_payload = {
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "audience": f"https://{AUTH0_DOMAIN}/api/v2/",
    "grant_type": "client_credentials"
}
token_response = requests.post(token_url, json=token_payload)
access_token = token_response.json()["access_token"]

headers = {"Authorization": f"Bearer {access_token}"}
all_users = []
page = 0
per_page = 100

while True:
    users_url = f"https://{AUTH0_DOMAIN}/api/v2/users"
    params = {"page": page, "per_page": per_page}
    response = requests.get(users_url, headers=headers, params=params)
    current_page = response.json()
    if not current_page:
        break
    all_users.extend(current_page)
    page += 1

total_user_count = len(all_users)
print(f"用户总数量:{total_user_count}")

注意事项

  • 若仅需要统计用户总数不需要用户详情,可直接调用/api/v2/users/count接口,无需分页拉取全量用户,性能更高,直接通过requests.get(f"https://{AUTH0_DOMAIN}/api/v2/users/count", headers=headers).json()["total"]即可拿到总数
  • 拉取用户时可通过fields参数指定需要返回的用户字段,减少数据传输量,比如仅需要邮箱和用户ID时,可添加参数fields: "email,user_id", include_fields: "true"
  • 注意遵守Management API的速率限制,避免短时间高频请求被限流

内容的提问来源于stack exchange,提问作者sydadder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:04